Bug #70154 [Opn->Ver]: date_parse() not returning false for missing time components
Edit report at https://bugs.php.net/bug.php?id=70154&edit=1
ID: 70154
Updated by: cmb@php.net
Reported by: abodera at gmail dot com
Summary: date_parse() not returning false for missing time
components
-Status: Open
+Status: Verified
Type: Bug
Package: Date/time related
Operating System: Linux
PHP Version: 5.6.11
Block user comment: N
Private report: N
New Comment:
I can confirm the different behavior.
It occurs to me that this might be an issue with
TIMELIB_UNHAVE_TIME[1], where h, i, s and f might have to be set
to TIMELIB_UNSET.
[1] <https://github.com/derickr/timelib/blob/2015.01/parse_date.re#L116>
Previous Comments:
------------------------------------------------------------------------
[2015-07-27 14:05:27] abodera at gmail dot com
Description:
------------
date_parse() is expected to return false for missing values.
For example:
date_parse('1st Aug')['year'] === false;
As soon as you provide day of week, the hour, minute, second components magically become 0 (as in
00:00:00) even though they do not exist:
date_parse('Sat 1st Aug')['hour'] === 0; // expected: false
date_parse('Sat 1st Aug')['minute'] === 0; // expected: false
date_parse('Sat 1st Aug')['second'] === 0; // expected: false
See: http://3v4l.org/HvND2
Test script:
---------------
<?php
print_r(date_parse('Sat 1st Aug'));
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=70154&edit=1
Thread (2 messages)