我知道如何使用日期格式字符串来转换日期(‘Y / m / d H:i:s’);进入2009/12/18 11:37:45.
我想要一个可以做相反的功能 – 查看格式化日期然后返回格式. PHP中有一个吗?
原因是我们在各种格式的数据库中保存了时间戳,我正在编写一个处理所有旧表并分析日期条目的工具.
编辑:所以我想没有一个直截了当的方法来做到这一点.我以为我可以使用strftime(),它返回自纪元以来的秒数.所以更好的问题是我可以在mySQL数据库的时间戳字段中以秒为单位使用该时间吗?如果表的结构是时间戳而不是varchar,我猜这会有效,有时是.
解决方法:
不,没有这样的功能.您需要编写一组表达所有可能变体的正则表达式匹配,例如:
$variations = array (
'^([0-9]{4})/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{4}2$' => 'Y/m/d H:i:s',
// more here
);
foreach ($dateFromDatabase as $date) {
foreach ($variations as $regexp => $dateFormat) {
if (preg_match ('|' . $regexp . '|', $date)) {
$matches[$dateFromDatabase] = $dateFormat;
break;
}
}
}
// $matches now consists of an array of dates => format