2017-10-17 14 views
-1

をフォーマット:PHPカーボンは間違って、私はそうのようなURLからUNIXタイムスタンプを受け取るUNIXタイムスタンプ

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

私が取得し、可読フォーマットにタイムスタンプを変換しようと、カーボンは不正な日付を出力します。

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

$タイムスタンプの値はです。

カーボン"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」になります。この値を "201 10月19日"という値にする唯一の方法は、+02:00オフセット(CEST?SAST?Africa/Johannesburg?)のタイムゾーンを使用することです。

関連する問題