2017-10-17 62 views
-1

我收到一个UNIX时间戳从URL像这样:PHP碳正确格式化UNIX时间戳

/api/v1/order_variations/60?d=1508364000000 

当我取回并尝试将时间戳转换为可读的格式,碳输出不正确的日期。

$timestamp = (int)$request->input('d'); 
$date = Carbon::createFromTimestamp($timestamp)->format('j F, Y'); 
dd($date); 

$时间戳值是15083.64亿

碳转化这“2月25日,49768”,但它应该是“2017年10月19日”

如果我使用:

Carbon::createFromTimeStampUTC($timestamp)->toDateTimeString(); 

我得到相同的结果。

任何想法我可能做错了什么?

+0

这个问题是针对PHP碳库而不是将Java时间戳转换为PHP。请详细说明您将此线程标记为重复 –

回答

1

Unix的时间戳是从纪元(1970年1月1日)的数量,但你使用的毫秒数。只需将值除以1000即可获得秒数。

$timestamp = (int)$request->input('d'); 
$timestamp = intval($timestamp/1000); // convert milliseconds to seconds 

此结果的值为“2017年10月18日22:00:00”。由此得出“2017年10月19日”的价值的唯一方法是使用带有+02:00偏移量的时区(CEST?SAST?Africa/Johannesburg?)。