Doc #74652 [Opn->Csd]: strtotime() does not define behaviour of h/m/s when passed only a date

[email protected] Thu, 02 Jun 2022 15:30:53 +0000
Newsgroups php.doc.bugs
Message-ID <[email protected]>
Edit report at https://bugs.php.net/bug.php?id=74652&edit=1

 ID:                 74652
 Updated by:         [email protected]
 Reported by:        junk at talpa dot plus dot com
 Summary:            strtotime() does not define behaviour of h/m/s when
                     passed only a date
-Status:             Open
+Status:             Closed
 Type:               Documentation Problem
 Package:            Date/time related
 Operating System:   ALL
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

Automatic comment on behalf of derickr
Revision: https://github.com/php/doc-en/commit/f5bd78b3c2c48b8702bc1547a08a9ad592047c1c
Log: Fixed bug #74652: strtotime() does not define behaviour of h/m/s when passed only a date


Previous Comments:
------------------------------------------------------------------------
[2017-05-25 14:58:18] [email protected]

I have added a test case for this:
https://github.com/php/php-src/commit/fc87715950be84564a8778fefb0b4b7aa7cefd5e

------------------------------------------------------------------------
[2017-05-25 14:35:08] junk at talpa dot plus dot com

Description:
------------
strtotime() can be given a string which only represents a "date", rather than a specific second-granularity on that date, e.g.

$foo = strtotime('25 May 2017');

Since strtotime() returns a timestamp it must decide on a sensible point on that day to use. As far as I can see, all versions (sensibly) assume 00 for any missing time elements, leading the example above to return a timestamp that represents


"2017-05-25T00:00:00+00:00"

This follows through if some time elements are given, but not others, e.g. 

strtotime('25 May 2017 10pm') => "2017-05-25T22:00:00+00:00"

While it *seems* safe to rely on this behaviour, it would be better to have it as documented behaviour of strtotime().


Expected result:
----------------
Documentation clearly indicates how the sub-day elements of the timestamp are constructed in the absence of time information in the input. 



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=74652&edit=1