在this question的帮助下,我能够将日期字符串解析为DateTime
对象,然后以所需的格式显示它。 DateTime
构造函数可以很好地解析DateTime
个字符串中的一个(非常容易理解)异常 - 它无法区分dd/mm/YYYY
和mm/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
类无关。
答案 0 :(得分:5)
您可以使用DateTime::createFromFormat
$dt = DateTime::createFromFormat( 'd/m/Y', '05/03/1900' );
echo $dt->format( 'Y-m-d' );