|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-10-05 12:28 UTC] gron1987 at gmail dot com
Description:
------------
We found that createFromFormat work incorrect.
If we use reset in format ("!") and don't send year then we will receive new date
in 1970 year, php don't change day of week ("Wed"), it change day("05").
It work correct in 5.3.8
Maybe you broke this when fix this:
https://bugs.php.net/bug.php?id=54851
Test script:
---------------
<?php
$str = "6:15 pm Wed, Oct 5";
$date = DateTime::createFromFormat("!g:i a D, M d", $str);
var_dump($date);
Expected result:
----------------
class DateTime#1 (3) {
public $date =>
string(19) "1970-10-05 18:15:00"
public $timezone_type =>
int(3)
public $timezone =>
string(13) "Europe/Berlin"
}
(php 5.3.8)
Actual result:
--------------
object(DateTime)#1 (3) {
["date"]=>
string(19) "1970-10-07 18:15:00"
["timezone_type"]=>
int(3)
["timezone"]=>
string(15) "Europe/Helsinki"
}
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Nov 04 18:00:01 2025 UTC |
> in 1970 year, php don't change day of week ("Wed"), it change > day("05"). Well, garbage in – garbage out. Obviously, 1970-10-05 is not a Wednesday (but a Monday) so there is no single correct solution; either the day of the week is adjusted, or the the day of the month. Another option would be to fail. However, the date parser is quite liberal, and chooses to adjust the day of the month as of PHP 5.3.9.