Подтвердить что ты не робот

Как преобразовать 13-значную временную метку Unix в дату и время?

У меня есть 13-значный штамп времени 1443852054000, который я хочу преобразовать в дату и время, но не удается. Я пробовал следующие коды:

echo date('Y-m-d h:i:s',$item->timestamp); 

не работает для меня, а также это

$unix_time = date('Ymdhis', strtotime($datetime ));

и это:

$item = strtotime($txn_row['appoint_date']); 
<?php echo date("Y-m-d H:i:s", $time); ?>

что я должен использовать?

4b9b3361

Ответ 1

Эта временная метка указывается в миллисекундах, а не в секундах. Разделите его на 1000 и используйте функцию date:

echo date('Y-m-d h:i:s', $item->timestamp / 1000);
// e.g
echo date('Y-m-d h:i:s',1443852054000/1000);
// shows 2015-10-03 02:00:54

Ответ 2

Вы можете достичь этого с помощью DateTime:: createFromFormat.

Поскольку у вас есть timestamp с 13 digits, вам нужно разделить его на 1000, чтобы использовать его с DateTime, то есть:

$ts = 1443852054000 / 1000; // we're basically removing the last 3 zeros
$date = DateTime::createFromFormat("U", $ts)->format("Y-m-d h:i:s");
echo $date;
//2015-10-03 06:00:54

DEMO

http://sandbox.onlinephpfunctions.com/code/d0d01718e0fc02574b401e798aaa201137658acb


Вы можете установить часовой пояс по умолчанию, чтобы избежать любых предупреждений

date_default_timezone_set('Europe/Lisbon');

Примечание

Подробнее о php дата и время php правильный путь

Ответ 3

В JavaScript используется 13-значная временная метка для представления времени в миллисекундах. В PHP 10 используется цифровая метка времени для представления времени в секундах. Так что разделите на 1000 и округлите, чтобы получить 10 цифр.

$timestamp = 1443852054000;
echo date('Y-m-d h:i:s', floor($timestamp / 1000));