strtotime () 未转换为时间戳


strtotime () not converting to timestamp

>我有一个循环,其中日期以不同的格式出现,例如对于某些值,它将像'10-13-2013 04:31',对于某些值,它就像'2013-10-14T22:14:40-0700'。我试图将其作为日期时间/时间戳列的值存储在数据库中,但对于10-13-2013 04:31的第一种格式来说失败了。所以我尝试使用 strtotime() 将其转换为 UNIX 时间戳。它适用于某些值,并为'10-13-2013 04:31'等值存储零。我认为这是因为它将第二个值视为月份并且失败了。我的代码如下:

foreach($reports as $report){
    echo strtotime($report->transactionDate);
}
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');