php - 帮助将timestamp字符串转换为可读时间格式

时间:2010-09-03 00:45:11

标签: php datetime timestamp

我有一个名为Time的记录,输入文件中包含以下日期字符串:20100902040003

我需要一些php帮助才能将其转换为更易读的内容,例如以下格式:2010-09-02 04:00:03 并且在打印表数据时想格式化它。

4 个答案:

答案 0 :(得分:10)

$timestamp = "20100902040003";
echo date('Y-m-d H:i:s', strtotime($timestamp)); // output: 2010-09-02 04:00:03

答案 1 :(得分:2)

由于时间戳不是unix时间戳,因此您必须使用substr()

$timestamp = "20100902040003";

$year = substr($timestamp, 0, 3);
$month = substr($timestamp, 4, 5);
$day = substr($timestamp, 6, 7);
$hour = substr($timestamp, 8, 9);
$minute = substr($timestamp, 10, 11);
$second = substr($timestamp, 12, 13);

然后使用sprintf()

排列
$formatted_timestamp = sprintf('%s-%s-%s %s:%s:%s', $year, $month, $day, $hour, $minute, $second);

答案 2 :(得分:2)

如果您确定输入文件中的所有记录都采用YYYYMMDDHHmmss格式,您可以尝试自行拆分字符串,然后将date()mktime()结合使用来生成一个有意义的日期格式。

答案 3 :(得分:2)

由于您的数据格式正确,只需要一些标点符号,因此您可以使用正则表达式,而不是日期解析和日期格式化函数。

$timestamp = "20100902040003";
preg_replace('/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/', 
             '\1-\2-\3 \4:\5:\6', $timestamp)

的产率:

2010-09-02 04:00:03