Doc #77701 [Ver->Csd]: \DateTime::createFromFormat does not set default parts

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

 ID:                 77701
 Updated by:         [email protected]
 Reported by:        zerkms at zerkms dot ru
 Summary:            \DateTime::createFromFormat does not set default
                     parts
-Status:             Verified
+Status:             Closed
 Type:               Documentation Problem
 Package:            Date/time related
 Operating System:   linux
 PHP Version:        7.3.2
 Block user comment: N
 Private report:     N

 New Comment:

Automatic comment on behalf of derickr
Revision: https://github.com/php/doc-en/commit/e5373bc7610639edca743a5d190e78e6cf41b42f
Log: Fixed bug #77701: DateTime::createFromFormat does not set default parts


Previous Comments:
------------------------------------------------------------------------
[2022-05-20 14:52:55] [email protected]

I am marking this as Documentation Problems, as this behaviour is now long standing, and not only applicable for the 'u' character. The same behaviour occurs for other time related characters too.

We can break this behaviour again, but I am not really willing to do so.

------------------------------------------------------------------------
[2019-03-06 04:23:34] [email protected]

https://3v4l.org/ZpIWq

------------------------------------------------------------------------
[2019-03-06 04:11:50] zerkms at zerkms dot ru

Description:
------------
As documentation says (http://php.net/manual/en/datetime.createfromformat.php):

If format does not contain the character ! then portions of the generated time which are not specified in format will be set to the current system time.

While in php >= 7.3.0 it's not the case anymore. Date fractions are filled, but time are zeroed.

➜ docker run -v $(pwd):/app --rm php:7.2-cli php /app/dt.php
int(1551845370)
string(29) "2019-03-06T04:09:30.000+00:00"

➜ docker run -v $(pwd):/app --rm php:7.3-cli php /app/dt.php
int(1551845374)
string(29) "2019-03-06T00:00:00.000+00:00"

Test script:
---------------
<?php

$now = \DateTime::createFromFormat('u', 0);

var_dump(time(), $now->format(\DateTime::RFC3339_EXTENDED));



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



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