我有一个称为Time
的记录,其包含以下日期字符串:20100902040003
在输入文件中。
我需要一些PHP帮助将其转换为更可读的格式,例如:2010-09-02 04:00:03
,并且我想在打印表格数据时将其格式化。
$timestamp = "20100902040003";
echo date('Y-m-d H:i:s', strtotime($timestamp)); // output: 2010-09-02 04:00:03
由于时间戳不是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);
$formatted_timestamp = sprintf('%s-%s-%s %s:%s:%s', $year, $month, $day, $hour, $minute, $second);
因为你的数据已经是正确的格式,只需要一些标点符号,所以你可以使用正则表达式,而不是日期解析和日期格式化函数。
$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)
yields:
2010-09-02 04:00:03
如果你确定输入文件中的所有记录都有格式为YYYYMMDDHHmmss
,那么你可以尝试自己拆分字符串,然后使用date()
与mktime()
结合生成一个有意义的日期格式。
date
和mktime
函数。 - BoltClock
strtotime()
调用。 - BoltClockstrtotime
将其转换为时间戳。 - Mischa