- Fixed bug #73426: createFromFormat with 'z' format char results in incorrect time.

This commit is contained in:
Derick Rethans 2016-10-31 10:43:33 +00:00
parent 97fc6aa8df
commit 1d1a7feecf
3 changed files with 40 additions and 4 deletions

10
NEWS
View File

@ -6,14 +6,18 @@ PHP NEWS
. Fixded bug #72736 (Slow performance when fetching large dataset with mysqli
/ PDO). (Dmitry)
- PCRE:
. Fixed bug #73392 (A use-after-free in zend allocator management).
(Laruence)
- Date:
. Fixed bug #73426 (createFromFormat with 'z' format char results in
incorrect time). (Derick)
- JSON:
. Introduced encoder struct instead of global which fixes bugs #66025 and
#73254 related to pretty print indentation. (Jakub Zelenka)
- PCRE:
. Fixed bug #73392 (A use-after-free in zend allocator management).
(Laruence)
27 Oct 2016, PHP 7.1.0RC5
- Core:

View File

@ -204,7 +204,7 @@ void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt)
void timelib_do_normalize(timelib_time* time)
{
if (time->s != TIMELIB_UNSET) do_range_limit_fraction(&time->f, &time->s);
if (time->f != TIMELIB_UNSET) do_range_limit_fraction(&time->f, &time->s);
if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->s, &time->i);
if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->i, &time->h);
if (time->s != TIMELIB_UNSET) do_range_limit(0, 24, 24, &time->h, &time->d);

View File

@ -0,0 +1,32 @@
--TEST--
Bug #73426 (createFromFormat with 'z' format char results in incorrect time)
--INI--
date.timezone=UTC
--FILE--
<?php
$date = '12:00:00 15';
$format = 'H:i:s z';
var_dump(DateTime::createFromFormat($format, $date));
$date = '16 12:00:00';
$format = 'z H:i:s';
var_dump(DateTime::createFromFormat($format, $date));
?>
--EXPECTF--
object(DateTime)#%d (%d) {
["date"]=>
string(26) "2016-01-16 12:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}
object(DateTime)#%d (%d) {
["date"]=>
string(26) "2016-01-17 12:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}