Как преобразовать 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); ?>

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

2 ответов


очевидно, это метка времени в миллисекундах, а не в секундах. Разделите его на 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

вы можете достичь этого с 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

демо

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


вы хотите установить часовой пояс по умолчанию чтобы избежать каких-либо предупреждения!--10-->

date_default_timezone_set('Europe/Lisbon');

Примечание:

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