解析SQL时间戳

时间:2011-12-10 16:30:29

标签: php strtotime

我使用以下函数来解析sql时间戳:

static function parse_sql_timestamp($timestamp, $format = 'd-m-Y')
{
    return date($format, strtotime($timestamp));
}

但有时无法解析它。

echo Helpers::parse_sql_timestamp('2011-12-10 16:44:40', 'd-m-Y H:i:s'); // outputs 10-12-2011 16:44:40

echo Helpers::parse_sql_timestamp('3000-01-01 00:00:00', 'd-m-Y H:i:s'); // output 01-01-1970 01:00:00 (epoch)

我的功能有问题吗?时间戳不是strtotime的有效字符串吗?

1 个答案:

答案 0 :(得分:3)

日期为too far in the future for a 32 bit timestamp

要解决这个问题,请使用PHP的Datetime

static function parse_sql_timestamp($timestamp, $format = 'd-m-Y')
{
    $date = new DateTime($timestamp);
    return $date->format($format);
}