php: конвертировать миллисекунды на сегодняшний день

У меня есть строка, которая равна дате, представленной как число миллисекунд с эпохи Unix.

Я пытаюсь вывести его в dmY.

Строка, которую я получил, была «1227643821310», и мне сказали, что результат должен быть равен 2-12-2008 , но я продолжаю получать результат от 25-11-2008

Мой код выглядит следующим образом:

$mil = 1227643821310; $seconds = $mil / 1000; echo date("dmY", $seconds); 

Любые идеи относительно того, почему это может быть?

Related of "php: конвертировать миллисекунды на сегодняшний день"

Вы уже делаете это правильно, 1227643821 просто не 02-12-2008, это действительно 25-11-2008.

Я только что добавил H: i: s, как в приведенном ниже примере:

 $mil = 1227643821310; $seconds = $mil / 1000; echo date("d/m/YH:i:s", $seconds); 

Единственное, что я могу придумать, это попытаться округлить десятичную часть, прежде чем преобразовать ее в дату. Если это не изменит результат, результат будет правильным.

Джефф, что важно понимать при работе с отметками времени: они представляют время, прошедшее с 0:00:00 01.01.1970 в GMT , а не в вашем часовом поясе (если вы не являетесь самим собой в GMT, конечно).

1227643821 действительно представляет время GMT 20:10:21 25.11.2008.

Это 25 ноября 2008 года в большинстве стран мира, однако во временах к востоку от Москвы (и в самом часовом поясе Москвы летом из-за летнего времени) это уже 26 ноября. Поскольку самый «экстремальный» восточный часовой пояс – GMT + 14, в мире нет места, где отметка времени 1227643821 может представлять дату позже 26-го.

Автор оригинальной ценности может как-то ошибиться при работе с часовыми поясами. Или просто ошибаюсь. Например, при вычислении значения добавляются секунды вместо миллисекунд на каком-то этапе.