我运行一个简单的测试,比较date()和gmdate()的输出,我对结果感到困惑。我了解功能之间的区别,但是,服务器设置为GMT时间,所以我期望结果是相同的。date()和gmdate()返回不同的结果
我检查了时区设置,他们似乎很好。我怀疑这与日间储蓄有关。
我很期待输出是相同的吗?
if (date_default_timezone_get()) {
echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
}
echo '<br>Full date '.date("Y-m-d H:i:s T I");
echo '<br>Full date GM '.gmdate("Y-m-d H:i:s T I");
$now = date("Y-m-d H:i:s T I");
$tempDate = $startWeek = time();
$date = new DateTime();
$tempDateU = $date->format('U');
$tempDate = $startWeek = time();
echo '<br>Date: '.date("d/m/y H:i", $tempDate);
echo '<br>GM Date: '.gmdate("d/m/y H:i", $tempDate);
echo '<br>Date: '.date("d/m/y H:i", $tempDateU);
echo '<br>GM Date: '.gmdate("d/m/y H:i", $tempDateU);
输出:
date_default_timezone_set: Europe/London
Full date 2016-04-29 11:35:55 BST 1
Full date GM 2016-04-29 10:35:55 GMT 0
Date: 29/04/16 11:35
GM Date: 29/04/16 10:35
Date: 29/04/16 11:35
GM Date: 29/04/16 10:35
'欧洲/伦敦'!='GMT' – CBroe
看起来像服务器设置为'欧洲/伦敦',其*目前不是* GMT,但BST(英国夏令时)=> GMT + 1 – CD001