我是通过HTML格式将CSV文件中的数据导入到数据库中,有时它工作正常,有时它会抛出错误DateTime::__construct(): Failed to parse time string (23/06/2015 12:00)
以下是抛出错误的代码
$DepDate = $emapData['1']; //Format is 23/06/2015 12:00
$depdatetime = new DateTime($DepDate); //Here it throws error
$date_depart = $depdatetime->format('Y-m-d');
$time_depart = $depdatetime->format('H:i');
注意:我使用的是explode
,但它运行良好,但我使用new DateTime();
答案 0 :(得分:1)
DateTime()不了解您提供的格式。它可以接受一系列格式,包括ISO8601,但不包括23/06/2015 12:00
。请注意@MarkBaker的评论,即您使用的/
分隔符意味着美国日期格式,其中第一个位置是月份,而且没有第23个月。
如果您无法更改/
,则可以使用DateTime::createFromFormat方法指定与实际数据格式匹配的格式。
答案 1 :(得分:0)
您可以使用DateTime::createFromFormat()
并在字符串中明确设置日期格式。或者,您可以告诉PHP猜测格式:new DateTime('@'.strtotime($date))
。但是,这很容易出错。