我有一个循环,其中日期以不同的格式出现,如某些值,它将像'10-13-2013 04:31'
一样,对于某些值,它就像'2013-10-14T22:14:40-0700'
。我尝试将其存储在DB中作为datetime / timestamp列的值,但是对于第一种格式10-13-2013 04:31
,它失败了。所以我尝试使用strtotime()
将其转换为UNIX时间戳。它适用于某些值,并且为'10-13-2013 04:31'
等值存储零。我认为这是因为它将第二个值视为月份,因此失败了。我的代码如下:
foreach($reports as $report){
echo strtotime($report->transactionDate);
}
答案 0 :(得分:2)
strtotime()
无法解析mm-dd-yyyy
格式。相反,您应该使用DateTime::createFromFormat(),如下所示:
$date = '10-13-2013 04:31';
$obj = DateTime::createFromFormat('m-d-Y H:i', $date);
$date = $obj->format('Y-m-d H:i:s');