我遇到过这个奇怪的问题:
$date1 = new DateTime('10.10.04');
$date2 = new DateTime('25.03.07');
echo $date1->format('Y-m-d'); // result: 2016-02-15
echo "<br>";
echo $date2->format('Y-m-d'); // result: 2007-03-25
Run Code Online (Sandbox Code Playgroud)
由于格式相同,我无法解释为什么第一次尝试失败,但第二次尝试成功.我能做些什么吗?
我无法更改收到日期的格式,因此我必须阅读dd.mm.yy日期格式,最后将其格式化为Ymd格式.
搜索周围有关我的东西,但我找不到任何东西.
从文档中获取,这应该是行为:
而如果分隔符是破折号( - )或点(.),则假定为欧洲dmy格式.
正如大家所建议的那样,尝试使用DateTime :: createFromFormat().请检查以下代码:
<?php
$date1 = DateTime::createFromFormat('d.m.y','10.10.04');
$date2 = DateTime::createFromFormat('d.m.y','25.03.07');
echo $date1->format('Y-m-d'); // result: 2004-10-10
echo $date2->format('Y-m-d'); // result: 2007-03-25
?>
Run Code Online (Sandbox Code Playgroud)