Создание даты из метки времени

У меня есть следующая метка времени: 2842214400

С помощью онлайн-инструмента преобразования http://www.onlineconversion.com/unix_time.htm это дает дата

Вс, 25 января 2060 г., 00:00:00 по Гринвичу

Однако, используя следующий код:

$timestamp = 2842214400;
print date("Y-m-d H:i:s", $timestamp);

В PHP 5.6.30 выдает результат 1923-12-19 17:31:44.

В PHP 7.0.15 выдает результат FALSE

Что я здесь делаю неправильно? Ни один из результатов PHP не соответствует тому, что я ожидал?


person Rob Holmes    schedule 08.02.2017    source источник
comment
Может ли это быть проблемой 2000 38? Обе версии PHP скомпилированы как 64-битные?   -  person apokryfos    schedule 08.02.2017


Ответы (1)


Бежать:

var_dump(PHP_INT_SIZE === 8;

Если он возвращает TRUE, используйте класс DateTime (http://php.net/manual/en/class.datetime.php) вместо стандартных функций даты.

Если он возвращает FALSE, вы используете 32-битную версию php. Вам нужно либо переключиться на 64-разрядную версию, либо использовать стороннюю библиотеку, например ADO (http://phplens.com/phpeverywhere/adodb_date_library).

person Ben Shoval    schedule 08.02.2017
comment
@RobHolmes Я рад, что мой ответ был полезен. Пожалуйста, примите это как ответ. - person Ben Shoval; 08.02.2017