Mar*_*sen 0 php unix laravel php-carbon
我从一个 URL 收到一个 UNIX 时间戳,如下所示:
/api/v1/order_variations/60?d=1508364000000
Run Code Online (Sandbox Code Playgroud)
当我检索并尝试将时间戳转换为可读格式时,Carbon 输出了错误的日期。
$timestamp = (int)$request->input('d');
$date = Carbon::createFromTimestamp($timestamp)->format('j F, Y');
dd($date);
Run Code Online (Sandbox Code Playgroud)
价值$时间戳为15083.64亿。
Carbon 将其转换为“25 February, 49768”,但应该是“19 October, 2017”
如果我使用:
Carbon::createFromTimeStampUTC($timestamp)->toDateTimeString();
Run Code Online (Sandbox Code Playgroud)
我得到相同的结果。
任何想法我可能做错了什么?
Unix 时间戳是自纪元(1970 年 1 月 1 日)以来的秒数,但您使用的是毫秒数。只需将该值除以 1000 即可得到秒数。
$timestamp = (int)$request->input('d');
$timestamp = intval($timestamp / 1000); // convert milliseconds to seconds
Run Code Online (Sandbox Code Playgroud)
这导致值“2017 年 10 月 18 日 22:00:00”。从中获取值“2017 年 10 月 19 日”的唯一方法是使用具有 +02:00 偏移量的时区(CEST?SAST?Africa/Johannesburg?)。
| 归档时间: |
|
| 查看次数: |
2376 次 |
| 最近记录: |