导入CSV时收到此错误DateTime :: __ construct():无法解析时间字符串

时间:2015-07-16 22:24:32

标签: php mysql csv datetime

我是通过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();

2 个答案:

答案 0 :(得分:1)

DateTime()不了解您提供的格式。它可以接受一系列格式,包括ISO8601,但不包括23/06/2015 12:00。请注意@MarkBaker的评论,即您使用的/分隔符意味着美国日期格式,其中第一个位置是月份,而且没有第23个月。

如果您无法更改/,则可以使用DateTime::createFromFormat方法指定与实际数据格式匹配的格式。

答案 1 :(得分:0)

您可以使用DateTime::createFromFormat()并在字符串中明确设置日期格式。或者,您可以告诉PHP猜测格式:new DateTime('@'.strtotime($date))。但是,这很容易出错。