Преобразование времени эпохи в дату PHP
Я сейчас использую API, и он предоставляет эпохальное время. Я перепробовал все, чтобы преобразовать это время в дату, но, похоже, оно не работает, включая $epoch_time / 1000
, а затем используя функцию date()
для его преобразования.
Время эпохи выглядит примерно так: 1353430853299. Есть ли способ сделать это? strtotime()
тоже не сработало.
Похоже, что все другие показания о времени эпохи касаются изменения даты на время эпохи, но я собираюсь пойти другим путем вокруг. Любая помощь будет очень признательна.
5 answers
Исправил это с помощью substr ($epoch, 0, 10), а затем использовал функцию даты для всех, кто интересуется 13-значными временами эпохи.
Вот пример кода:
echo date("Y-m-d H:i:s", substr("1477020641000", 0, 10));
// Result: 2016-10-20 20:30:41
Есть несколько различных способов, которыми вы можете это сделать.
Во-первых, то, что у вас есть, - это время эпохи Unix. (1/1/1970), это делает все НАМНОГО проще.
В PHP попробуйте
$epoch = 1344988800;
$dt = new DateTime("@$epoch");
echo $dt->format('Y-m-d H:i:s');
Для отображения вашей даты
ИЛИ
Если вам нужна длинная дата RFC232:
echo date('r', $epoch);
$epoch = 1344988800;
$dt = new DateTime("@$epoch"); // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2012-08-15 00:00:00
Подробнее: http://www.epochconverter.com/programming/functions-php.php
<?php
$epoch = '1353429562';
date_default_timezone_set('GMT');
echo date('Y-m-d H:i:s', $epoch);
К вашему сведению, API, отправляющие данные JSON, используют epoch с миллисекундами, чтобы быть совместимыми с веб-браузерами.
Я не знаю, зачем PHP нужно удалять миллисекунды, так как это стандарт для каждого веб-браузера.
Итак, вы можете использовать левую 10 или /1000 (лучше разделить на 1000, если вы не хотите получить проблемы в ноябре 20, 2286!!!)