php - strtotime() 未转换为时间戳

标签 php mysql date unix-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');

关于php - strtotime() 未转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19424689/

相关文章:

php - 更改 Magento 服务器和 MySQL 错误

php - 将 MySQL 转换为 MSSQL 时,关键字 'where' 附近的语法不正确

php - mysql查询不从where条件获取数据

php - 尝试将字段插入到数据库表中,但出现错误 "Object Not Found"

mysql - 无法删除或更新父行: a foreign key constraint fails

mysql - 如何将 mysql 列的默认值设置为 unix_timestamp?

java - 如何在 hibernate 中使用数据库系统日期

php - 使用 mysql 日期函数,设置 cron 作业

date - 如何获取经期的开始和结束时间?

mysql - 为什么这个组合键没有被索引?