2012-07-14 43 views
5

Tôi có timestamp sau:Linux dấu thời gian để PHP

1342259667654 

mà khi chuyển đổi với http://www.epochconverter.com/ cho:

Assuming that this timestamp is in milliseconds: 
GMT: Sat, 14 Jul 2012 09:54:27 GMT 
Your time zone: 14. juli 2012 11:54:27 GMT+2 

Và đó là thời gian chính xác, nhưng khi sử dụng:

echo date("Y-m-d H:i:s", 1342259667654); 

Tôi nhận được ngày sau:

1904-07-24 10:22:47 

Làm thế nào tôi có thể nhận được với PHP ngày chính xác ra khỏi tem thời gian này?

+0

bạn muốn ngày hiện tại hay cái gì? –

+0

Chỉ cần xóa 3 ký tự cuối cùng đã cho tôi kết quả đúng? tức là 1342259667 – SmokeyPHP

+4

DERP ... vì dấu thời gian là mili giây, ngày PHP() sử dụng giây, vì vậy bạn cần chia cho 1000 – SmokeyPHP

Trả lời

6

timestamp của bạn cần được chia cho 1000:

echo date("Y-m-d H:i:s", 1342259667654/1000); 
+0

Cảm ơn bạn @ davidethell, đã bỏ lỡ phần đó. – Adnan

0

Giá trị 1342259667654 thực sự là trong miliseconds, trong khi date() chức năng của PHP là không có khả năng xử lý các giá trị miliseconds. Do đó đầu ra lạ.

2
$timestamp = 1342259667; 
$dt = new DateTime("@$timestamp"); // convert UNIX timestamp to PHP DateTime 
echo $dt->format('Y-m-d H:i:s'); 

Bạn cũng có thể làm theo cách này.

Các vấn đề liên quan