2016-08-11 42 views
0

對不起,這可能是一個重複的問題。但仍然沒有得到正確的答案。將unix時間戳轉換爲laravel中的人類可讀日期

我有一個unix時間戳'1470900186868',它應該轉換成'Thu,2016年8月11日07:23:06.868 GMT',但我總是得到相同的值''12月20日,48580 @ 17:14 :28 UTC「。

在此先感謝。

+0

時間戳是整數,最大值= 4294967296。我想你有在64位處理器的8個字節的時間戳?看看https://www.sitepoint.com/is-your-php-application-affected-by-the-y2k38-bug/ – mishanon

+0

顯示你到目前爲止嘗試過的。 – aynber

+0

這是以毫秒爲單位,而不是秒。將它除以1000,然後將餘數附加到字符串中。 – iainn

回答

1
<?php 
$val = 1470900186868; 

// Grab the milliseconds as the initial value mod 1000 
$milliseconds = $val % 1000; 

// Divide by 1000 to obtain the actual timestamp 
$ts = intval($val/1000); 

// Parse into a DateTime object 
$date = DateTime::createFromFormat('U', $ts); 

// Formatted output 
echo $date->format('D, d M Y H:i:s') . '.' . $milliseconds; 
0

您是否嘗試使用DateTime對象?

echo (new DateTime()) 
    ->setTimestamp(1470900186868/1000) 
    ->format('D, d M Y H:i:s T') 
相關問題