2017-10-17 91 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