2017-10-17 127 views
-2

我正在研究一個用vanilla 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 

漂亮的日期代表10月27日00:00,但時間戳(根據epochconvertor)代表10月26日23:00。

我不知道爲什麼時間戳慢一個小時。誰能幫忙?

+1

'setTime(0,0)'將時間設置爲'00:00:00'。 – Barmar

+0

這正是我想要的...? – James

+0

'$ date-> setTimestamp($ timestamp + 3601)的用途是什麼;'如果下一行完全覆蓋它? – ceejayoz

回答

6

如果你在倫敦,那麼你的時間戳可能在英國夏令時。時代將在格林威治標準時間。 BST比GMT早一個小時。

+0

Derp;謝謝! – James