Edit report at https://bugs.php.net/bug.php?id=55743&edit=1
ID: 55743
Comment by: jsuprock at gmail dot com
Reported by: bugzilla33 at gmail dot com
Summary: date u - Microseconds (added in PHP 5.2.2)
Status: Not a bug
Type: Bug
Package: Date/time related
Operating System: All
PHP Version: 5.4.0beta1
Block user comment: N
Private report: N
New Comment:
Hi Salathe,
I suspected that this was the case based on the API for date() at php.net
and the NOTE section. I'm not disagreeing, but my issue is mainly with the
documentation...
So here's the part where I feel like I need to put in my 2 cents, and I do
appreciate your ears regardless of the outcome. (You have been great so far.)
With respect to what the NOTE section states, it would probably make more sense
to do the following:
(1) Disable this formatting character for date() and gmdate(), and
specifically remove the formatting character from the documentation on the
date() page.
(2) Update the DateTime::format() page with an explicit list of formatting
characters including the "u".
After all, the "u" format character is completely useless in the context of
date(), and it really should not be allowed at all. I just think it causes
more
confusion is all...unless perhaps in the future all PHP date functions will
accept microtime(true) (with a precision of 6) instead of time().
Sincerely,
John
Previous Comments:
------------------------------------------------------------------------
[2012-08-02 14:21:49] [email protected]
The "u" format character does work for date(), it always gives the correct
answer
of "000000" for this function. As explained here and on the date() page,
date()
itself works with whole seconds for the timestamp. If fractions of seconds are
needed, use the DateTime class.
Again, the document is correct since the "u" format character exists and does
output the number of milliseconds for a given timestamp. However, that number
will always be none since date() works with integers, i.e. whole seconds, only.
------------------------------------------------------------------------
[2012-08-02 14:03:28] jsuprock at gmail dot com
Hi, I've experienced this as well, but I do follow your explanation. However,
what is the reason for the documentation on this page still being incorrect?
http://us2.php.net/manual/en/function.date.php
It has been almost a year, and the page still suggests that the "u" formatter
will work with date().
Thank you,
John
------------------------------------------------------------------------
[2011-09-23 13:29:55] [email protected]
"Note:
Since this function only accepts integer timestamps the u format character is
only useful when using the date_format() function with user based timestamps
created with date_create()."
See http://php.net/date
------------------------------------------------------------------------
[2011-09-20 18:42:46] bugzilla33 at gmail dot com
Description:
------------
http://pl.php.net/manual/en/function.date.php
http://pl.php.net/manual/en/function.gmdate.php
Specification:
u - Microseconds (added in PHP 5.2.2) - Example: 654321
u formater do not works because second parameter (called timestamp) is int type
u formater will works if second parameter (called timestamp) is double
(compatible with current int)
Please remove u formater useless or fix specyfication
or a better fix it int -> double (second parameter)
Test script:
---------------
<?=gmdate('u',12.13)?>
<?=date('u',12.13)?>
Expected result:
----------------
130000
130000
Actual result:
--------------
000000
000000
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55743&edit=1