将格式化日期转换为PHP中的epoches

时间:2017-02-04 12:12:59

标签: php date

很多以前,我们决定将时间戳存储在SQL表中,如下所示:

date ("Y-m-d_H-i-s")

这会生成一个类似2017-02-04_00-37-45的时间戳。

时间已经过去了,它已经达到了我需要能够操作这些数据的程度,整理了1月份创建了多少行等等,所以我需要将时间戳转换为epoches。

该表有大约1000行,我打算使用PHP来完成这项工作。

strtotime($row["time"]);

返回空和

$date = new DateTime($time);
echo $date->format("Y-m-d_H-i-s");

只是提供了这个错误:

  

PHP致命错误:未捕获的异常'异常' with message' DateTime :: __ construct():无法解析位置10(_)处的时间字符串(2017-02-03_09-41-42):意外字符

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

strtotime()或其他需要给定格式的函数无法识别您的格式,因为您使用下划线而不是空格,并且在您的小时/分钟/秒之间使用短划线。但是,您可以使用DateTime::createFromFormat()从特定格式创建,这将根据您的内容创建DateTime对象。

$date = DateTime::createFromFormat("Y-m-d_H-i-s", $row["time"]);