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

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

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

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

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

и это :

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

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

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

 echo date('Ymd h:i:s', $item->timestamp / 1000); // eg echo date('Ymd h:i:s',1443852054000/1000); // shows 2015-10-03 02:00:54 

Вы можете добиться этого с помощью функции DateTime :: createFromFormat .

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

 $ts = 1443852054000 / 1000; // we're basically removing the last 3 zeros $date = DateTime::createFromFormat("U", $ts)->format("Ymd 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 в правильном направлении