我从URL中收到一个UNIX时间戳,如下所示:
/api/v1/order_variations/60?d=1508364000000
当我检索并尝试将时间戳转换为可读格式时,Carbon会输出错误的日期。
$timestamp = (int)$request->input('d');
$date = Carbon::createFromTimestamp($timestamp)->format('j F, Y');
dd($date);
$ timestamp 的值为 1508364000000 。
碳将此转换为“2月25日,49768”,但它应“2017年10月19日”
如果我使用:
Carbon::createFromTimeStampUTC($timestamp)->toDateTimeString();
我得到了相同的结果。
任何想法我可能做错了什么?
答案 0 :(得分:2)
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?)。