Bug->Doc #78603 [Opn]: DateTime::createFromFormat() missing component behaviour change
From: requinix@php.net Date: Fri, 27 Sep 2019 14:05:37 +0000 Subject: Bug->Doc #78603 [Opn]: DateTime::createFromFormat() missing component behaviour change References: 1 Groups: php.doc.bugs Request: Send a blank email to doc-bugs+get-16967@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78603&edit=1
ID: 78603
Updated by: requinix@php.net
Reported by: chris dot smith at widerplan dot com
Summary: DateTime::createFromFormat() missing component
behaviour change
Status: Open
-Type: Bug
+Type: Documentation Problem
Package: Date/time related
Operating System: Linux
PHP Version: 7.3.10
Block user comment: N
Private report: N
New Comment:
If it's been this way since PHP 5.3 then the problem is the documentation.
Previous Comments:
------------------------------------------------------------------------
[2019-09-27 14:04:04] chris dot smith at widerplan dot com
Description:
------------
I'm not sure if this is a problem with the documentation or code.
The documentation states:
> 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.
When executing the following based on the documentation I'd expect the hour, minute and seconds
to be set to the current time however they are set to the epoch.
DateTime::createFromFormat('u', '123456');
// PHP < 7.3: 2019-09-27 14:50:40.123456
// PHP >= 7.3: 2019-09-27 00:00:00.123456
Further investigation led me to discover that the following example also contradicts the
documentation and has been the case since the days of PHP 5.3.
DateTimeImmutable::createFromFormat('s', '12');
// 2019-09-27 00:00:12.000000
// Expected (per docs): 2019-09-27 14:50:12.000000
https://3v4l.org/v2bib
I ran a git bisect to identify when the microsecond handling changed which found:
09340ea9b9b2a06c6f1369502806640779073885
Test script:
---------------
<?php
$dt1 = DateTime::createFromFormat('u', '123456');
$dt2 = DateTime::createFromFormat('s', '25');
var_dump($dt1->format('H:i'));
var_dump($dt2->format('H:i:s'));
Expected result:
----------------
string(5) "14:29"
string(8) "14:29:25"
Actual result:
--------------
string(5) "00:00"
string(8) "00:00:25"
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=78603&edit=1
Thread (11 messages)
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
- Unknown Message
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Com]: DateTime::createFromFormat() missing component behaviour change
- Doc #78603 [Opn->Csd]: DateTime::createFromFormat() missing component behaviour change
| « previous | php.doc.bugs (#16967) | next » |
|---|