我在网站上大量显示日期或时间,我正在考虑编写一个解析PostgreSQL时间戳的函数。
时间戳采用以下格式:Y-m-d H:i:s.u
。例如。 2011-04-08 23:00:56.544
。
我正在考虑这样的事情:
function parse_timestamp($timestamp, $format = 'd-m-Y')
{
// parse the timestamp
return $formatted_timestamp;
}
但是我想知道这是否也可以在没有自己编写解析器的情况下实现(使用一些PHP函数)。
答案 0 :(得分:5)
function parse_timestamp($timestamp, $format = 'd-m-Y')
{
return date($format, strtotime($timestamp));
}
不要忘记在之前设置时区,例如
date_default_timezone_set('UTC');
或者在您的情况下,我猜'Europe/Amsterdam'
。
您始终可以使用Y-m-d H:i:s.u
获取此格式strtotime()
的PHP时间戳。然后,使用date()
,您可以以自己的格式导出时间。这两个功能都取决于时区设置。
答案 1 :(得分:4)
strtotime完全能够解析该时间字符串,然后只需用date重新格式化它:
echo date('d-m-Y', strtotime('2011-04-08 23:00:56.544')); // 08-04-2011
答案 2 :(得分:2)
如果数据库没有提供您想要的内容,请进行更改。 PostgreSQL也可以format dates and times。
select to_char(timestamp '2011-03-04 07:04:00', 'DD-MM-YYYY');
04-03-2011
但这在国际环境中有风险,比如网络。不同的语言环境期望元素的不同排序。 (" 04-03"意思是03年4月或4月4日?)这个表达式更容易理解,它使用了几个月的特定于区域设置的缩写。
select to_char(timestamp '2011-03-04 07:04:00', 'DD-Mon-YYYY');
04-Mar-2011
答案 3 :(得分:1)
对于使用DateTime类的人:
DateTime::createFromFormat('Y-m-d H:i:s.u', $yourTime);
答案 4 :(得分:0)
查看strptime
函数 - 它可以解析许多时间格式。