RE: [PHP] Date Manipulation
| From: | Gryffyn, Trevor | Date: | Thu, 02 Dec 2004 15:28:08 +0000 |
| Subject: | RE: [PHP] Date Manipulation | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-203345@lists.php.net to get a copy of this message | ||
In addition to Matthew's response...
Strtotime() and mktime() both return a serial date. That's the
"1101945775" number you got. To get this back to a YYYYmmdd format that
you seem to be trying to do with mktime(), you want to use date() as
Matthew suggested. Again, I think examples help more than "RTFM":
date("Ymd",strtotime("now"));
mktime() and strtotime() produce the same output which is not a
human-readable date format. So basically, in your example below, you
told it that you wanted:
The serial date (mktime()) of hour "Ymd" (evaluates as 0 I believe),
minute "1101945775", with seconds, month, day and year all empty. I
think the leaving them empty is ok since they're optional from right to
left, and the excessive number of minutes probably wouldn't be a big
deal (unless it goes past the maximum date rate, which looks like what
it's doing). Let's do a quick calc:
Looks like the max number that mktime() can produce is:
2147483647
This is 1/18/2038 22:14:07
If you take your serial date "1101945775" and pipe it into the minutes
section of mktime(), it'll produce that number times 60 (60 seconds in a
minute) and try to get that date. This produces a number:
66116746500
Significantly bigger than the max serial date for Windows mentioned
above.
Long answer to maybe help you understand how it all works.
Btw: The serial date is the number of seconds since the beginning of the
"Unix Epoch" (# of secs since January 1, 1970 that is... Hey, time's
gotta start somewhere eh?)
Hope this helps clarify mktime(), strtotime() and date().
-TG
> -----Original Message-----
> From: Christopher Weaver [mailto:booktues@yahoo.com]
> Sent: Wednesday, December 01, 2004 7:13 PM
> To: php-general@lists.php.net
> Subject: Re: [PHP] Date Manipulation
>
>
> This code:
>
> echo strtotime("now");
> echo mktime("Ymd", strtotime("now"));
>
> is producing this result:
>
> 1101945775
> Warning: mktime(): Windows does not support negative values for this
> function ...
> -1
>
> What am I doing wrong?
>
> Thanks again.