ミリ秒単位で入力しています。例えば:$timestamp = 1479844722190;
PHP:日付関数を使用して日付に変換した後にタイムスタンプを変更したのはなぜですか?
私は$date = date('Y-m-d h:i:s', $timestamp/1000);
を使用してタイムスタンプが、私は戻ってstrtotime($date);
私の結果はgmdate()
を使用した場合、同じことが起こる1479801522
あるを使用してタイムスタンプに変換することを変換します。
実際のコード:
日():
$timestamp = get_timestamp(); // 1479847575022
$date = date('Y-m-d h:i:s', $timestamp/1000); // 2016-11-22 08:46:15
strtotime($date); // 1479804375
はgmdate():これはなぜ起こるか
$timestamp = get_timestamp(); // 1479847661576
$date = gmdate('Y-m-d h:i:s', $timestamp/1000); // 2016-11-22 08:47:41
strtotime($date); // 1479804461
誰かが私を言うことができる、および実行する方法があるかどうかこれは、このようなタイムマシンを作成することなく?
UPDATE:
date_default_timezone_set('UTC')
事前には、次のような結果を与える置く:
timestamp: 1479848532028
date: 2016-11-22 09:02:12
reverted: 1479805332
timestamp: 1479848622222
date: 2016-11-22 09:03:42
reverted: 1479805422
timezonesssssss –
問題は、問題を確認するために消えるかどうかを確認するために、 'あなたのコードの前に' date_default_timezone_set( 'UTC')を試してみてくださいすることはタイムゾーンです。 Unixタイムスタンプは常にUTCでなければなりません。 – Devon