在this question的帮助下,我已经能够将日期字符串解析为DateTime
对象,然后以所需的格式显示它。 DateTime
构造函数在解析DateTime
字符串时有很好的例外 - 它无法区分dd/mm/YYYY
和mm/dd/YYYY
之间的区别。格式未知时创建PHP日期时间
如果我做到以下几点:
$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
类没有关系。
对于时区:'日期时间:: createFromFormat( 'd/M/Y','05/03/1900' ,新DateTimeZone(“欧洲/伦敦)) ;' – vaso123
DateTime对象与'strtotime()' 如果您使用'/'作为分隔符,并且使用'-'作为分隔符,则假定日期为美国格式。 – RiggsFolly
如果格式未知,那么你不能可靠地解析它。怎么说你的日期是dd/mm/yyyy或者mm/dd/yyyy? '/'暗示这是一种美国格式,但没有说它必须是。那要么是3月5日,要么是5月3日。你不能说。 –