Я пытаюсь преобразовать формат метки времени блоггера в миллисекунды и ниже мой код. Как только он преобразуется в миллисекунды, а затем я преобразую миллисекунды в дату и время, но он отображает неправильная дата и время
Образец кода:
<?php
echo strtotime("2018-02-26T01:52:00-08:00");
?>
ВЫХОД:
1519638720
Образец кода:
$milliseconds = 1519638720;
$seconds = $milliseconds / 1000;
$date = date("d M Y, D", $seconds);
$seconds = $milliseconds / 1000;
$time = date("g:i a", $seconds);
echo $date.", ".$time;
НЕПРАВИЛЬНО:
18 января 1970, вс, 14:07
Единственная ошибка, которую вы сделали, заключается в том, что strtotime
вернуть счетчик секунд, так что улучшите это:
$seconds = strtotime("2018-02-26T01:52:00-08:00");
$date = date("d M Y, D", $seconds);
$time = date("g:i a", $seconds);
Вы написали в комментариях:
На самом деле мне нужно хранить дату публикации поста блоггера в формате миллисекунд.
Исходя из этого, лучшим выбором будет иметь версию PHP> 7.1 (а не 7.1.3, поскольку в ней есть ошибка, см. Вот), где микросекунды
Создать новый DateTime
объект:
$now = new DateTime();
Для вывода метки времени с микросекундной частью используйте тип формата U
а также u
, увидеть Вот что они.
$uSeconds = $now->format('U.u'); //
А теперь сохраните эти данные в вашей БД.
Если у вас нет PHP> 7.1, используйте microtime(true)
, который вернет метку времени Unix с частью микросекунды.