格式未知时创建PHP DateTime

Mik*_*ter 1 php datetime

这个问题的帮助下,我已经能够将日期字符串解析为一个DateTime对象,然后以所需的格式显示它.该DateTime构造效果很好破译DateTime一个(非常可以理解的)异常的字符串-它不能告诉之间的区别dd/mm/YYYYmm/dd/YYYY.

如果我执行以下操作:

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

然后我得到以下输出:

1900-05-03
Run Code Online (Sandbox Code Playgroud)

但是,原始日期是dd/mm/YYYY格式,所以我的输出不正确 - 我现在有3rd May 1900.

有没有一种方法来设置DateTime更喜欢dd/mm/YYYYmm/dd/YYYY解析日期字符串时?

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

Jro*_*rod 5

您可以使用DateTime :: createFromFormat

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

  • 标题中的“当格式未知时”要求怎么样? (2认同)