Date()函数给我错误的时间,即使在使用date_default_timezone_set()更改时区后


date() function giving me the wrong time even after changing timezone using date_default_timezone_set()

我已经在构造函数中设置了默认时区,但是date()仍然给我错误的时间…

$time = 'Etc/GMT-4';
date_default_timezone_set($time);

date('g:iA. M j, Y') . ' in ' . date_default_timezone_get() . '.';

7:00AM. Mar 13, 2014 in Etc/GMT-4.
不是

11:00AM. Mar 12, 2014 in Etc/GMT-4.

除了所有的混乱

now()time()给出不同的输出

显然这是一个PHP行为或一个错误,但我们想称之为:

由于某些原因,Etc/GMT时区以"错误的方式"实现GMT偏移

(来源:https://bugs.php.net/bug.php?id=34710)

所以,如果你是在gmt4中你必须使用

date_default_timezone_set('Etc/GMT+4');