格式未知时创建PHP DateTime

时间:2016-06-08 14:33:29

标签: php datetime

this question的帮助下,我能够将日期字符串解析为DateTime对象,然后以所需的格式显示它。 DateTime构造函数可以很好地解析DateTime个字符串中的一个(非常容易理解)异常 - 它无法区分dd/mm/YYYYmm/dd/YYYY之间的区别。

如果我执行以下操作:

$dt = new DateTime("05/03/1900"); // 5th march 1900
echo $dt->format('Y-m-d');

然后我得到以下输出:

1900-05-03

但是,原始日期采用dd/mm/YYYY格式,因此我的输出不正确 - 我现在拥有3rd May 1900

在解析日期字符串时,有没有办法将DateTime设置为优先dd/mm/YYYY而不是mm/dd/YYYY

编辑: 我在这个类的构造函数中调用date_default_timezone_set('Europe/London');,但这似乎没有任何效果。也许这与DateTime类无关。

1 个答案:

答案 0 :(得分:5)

您可以使用DateTime::createFromFormat

$dt = DateTime::createFromFormat( 'd/m/Y', '05/03/1900' );
echo $dt->format( 'Y-m-d' );