PHP错误格式化UNIX时间戳

PHP错误格式化UNIX时间戳,php,laravel,unix,php-carbon,Php,Laravel,Unix,Php Carbon,我从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的值为15083640

我从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

碳将其转换为“2017年2月25日,49768”,但应为“2017年10月19日”

如果我使用:

Carbon::createFromTimeStampUTC($timestamp)->toDateTimeString(); 
我得到了同样的结果


知道我做错了什么吗

Unix timestamps是自纪元(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?非洲/约翰内斯堡?)。

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/约翰内斯堡?)。

这个问题专门针对PHP carbon库,而不是将Java时间戳转换为PHP。请详细说明您将此线程标记为重复的问题。此问题特定于PHP carbon库,而不是将Java时间戳转换为PHP。请详细说明您将此线标记为重复线的情况