Doc #67921 [Opn->Csd]: createFromFormat allows overflow for 'H' and 'G' so 25-99 rolls to next day
| From: | git@php.net | Date: | Fri, 13 May 2022 14:27:57 +0000 |
| Subject: | Doc #67921 [Opn->Csd]: createFromFormat allows overflow for 'H' and 'G' so 25-99 rolls to next day | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-19433@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=67921&edit=1
ID: 67921
Updated by: git@php.net
Reported by: crazytonyi at gmail dot com
Summary: createFromFormat allows overflow for 'H' and 'G' so
25-99 rolls to next day
-Status: Open
+Status: Closed
Type: Documentation Problem
Package: Date/time related
PHP Version: 5.5.16
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of derickr
Revision: https://github.com/php/doc-en/commit/5267e13731a496c2a2544433ee02a5314e1391d6
Log: Fixed bug #67921: createFromFormat allows overflow for 'H' and 'G' so 25-99
rolls to next day
Previous Comments:
------------------------------------------------------------------------
[2020-08-03 22:40:35] thomas at landauer dot at
I just opened a related issue: https://bugs.php.net/bug.php?id=79926
------------------------------------------------------------------------
[2014-08-28 16:28:11] requinix@php.net
This is standard behavior for date functions: when the input matches the format constraints (eg,
'H' is a two-digit number) then numbers above and below the valid range will
over-/underflow.
"100:00" isn't valid for "H:m" because the hour cannot be three digits.
------------------------------------------------------------------------
[2014-08-28 07:32:34] crazytonyi at gmail dot com
Description:
------------
When a value between 24 and 99 is in date/time string evaluated by DateTime:createFromFormat , it
handles as valid and resulting object is Date + hours % 24 . So 36:00 is treated as date + 1 day
12:00
Expected Result: Evaluates to false.
If this is by design, it should be very clearly documented. Since 100:00 returns false, this does
not seem intentional.
Test script:
---------------
$time="30:29";
$date = DateTime::createFromFormat("H:m", $time);
echo $date->format(DateTime::W3C);
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=67921&edit=1