Edit report at https://bugs.php.net/bug.php?id=66257&edit=1
ID: 66257
Comment by: d at ja dot vu
Reported by: mfaust at usiwireless dot com
Summary: strtotime doesn't use current timezone on '4
thursdays'
Status: Assigned
Type: Bug
Package: Date/time related
Operating System: Linux
PHP Version: 5.6.8
Assigned To: derick
Block user comment: N
Private report: N
New Comment:
Plural of day names are not supported by timelib, so '4 thursdays' will be interpreted as:
'the fourth Thursday, in the "s" - sierra - time zone'
The sierra time zone is UTC-6, and that overlaps with America/Chicago for parts of the year.
I think this should be reclassified as a documentation problem.
The claim on the strtotime page that it will 'Parse about any English textual datetime
description into a Unix timestamp' is not very specific, and other time units do support the
plural form. It could do with a few more examples, or a pointer to the regexes used in the
implementation.
Alternatively I can provide a few-line patch to add the plural of week names, but that will break
BC.
However I do not think many people even know about the one letter time zones, except for Zulu, and
even fewer will actually use it.
In any case I suggest the test case for this bug be removed from the test suite.
Previous Comments:
------------------------------------------------------------------------
[2015-04-29 19:58:52] cmb@php.net
Interestingly, the issue is timezone related. It doesn't happen for
America/Chicago, but for UTC, for instance[1].
[1] <http://3v4l.org/LLkCE>
------------------------------------------------------------------------
[2014-12-30 16:52:29] mfaust at usiwireless dot com
sorry, I meant "re-opened"
------------------------------------------------------------------------
[2014-12-30 16:52:07] mfaust at usiwireless dot com
I am unable to change the status back to "unopened" due to "ERROR:
You aren't allowed to change a bug to that state."
------------------------------------------------------------------------
[2014-12-30 16:49:41] mfaust at usiwireless dot com
This still occurs on PHP 5.6.4
<?php
echo date_default_timezone_get() . "\n;
date_default_timezone_set('UTC');
$timestamp = mktime(0,0,0,11,1,2014);
echo strtotime('4 thursdays', $timestamp) . "\n";
echo strtotime('first thursday + 3 weeks', $timestamp) . "\n";
?>
Output:
America/Chicago
1417068000
1417046400
------------------------------------------------------------------------
[2014-12-30 10:42:10] php-bugs at lists dot php dot net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=66257
--
Edit this bug report at https://bugs.php.net/bug.php?id=66257&edit=1