2017-10-17 7 views
-2

私はバニラPHPで書かれた古代のシステムに取り組んでいます。PHPのタイムスタンプが遅い

時間の変換に問題があります。以下の例では

は、私は、タイムスタンプと「きれい日」の両方が互いを反映するために期待します。サーバー上でこのスクリプトを実行するとき

<?php 
date_default_timezone_set('Europe/London'); 

$timestamp = 1509062400; //Friday, October 27, 2017 12:00:00 AM 

$date = new DateTime(); 
$date->setTimezone(new DateTimeZone('Europe/London')); 
$date->setTimestamp($timestamp + 3601); 
$date->setTime(0, 0); 

echo $date->getTimestamp(); 
echo '<br/>'; 
echo $date->format('Y-m-d H:i:s'); 

しかし、結果は以下の通りである。

Timestamp: 1509058800 
Pretty Date: 2017-10-27 00:00:00 

可愛い日付は27日10:00 00:00を表しますが、タイムスタンプ(epochconvertorによる)は26日10月23日を表します。

なぜタイムスタンプが1時間遅いのかわかりません。誰も助けることができますか?

+1

'setTime(0、0)'は時刻を '00:00:00'に設定します。 – Barmar

+0

これはまさに私が欲しいものです...? – James

+0

'$ date-> setTimestamp($ timestamp + 3601);の目的は次の行が完全に上書きするかどうかです。 – ceejayoz

答えて

6

あなたがロンドンにいる場合、あなたのタイムスタンプは英国夏時間の可能性があります。時代はGMTになる予定です。 BSTはGMTより1時間遅れています。

+0

Derp;ありがとうございました! – James