Синтаксическая отметка времени SQL - PullRequest
0 голосов
/ 10 декабря 2011

Я использую следующую функцию для разбора временных меток 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 Ответ

3 голосов
/ 10 декабря 2011

Дата будет слишком далеко в будущем для 32-битной отметки времени .

. Чтобы исправить это обращение к PHP Datetime:

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