我的服务器是中央时间,我正在尝试显示尼日利亚阿布贾的事件(显示在他们的时间)。
我用于显示正确时区的 PHP 代码如下...
// since our server is central time we have to make the server think it's in a different time zone or it will display all times using the central offset
// date_default_timezone_set("bleh") is used to do this
// php supported time zones (http://us3.php.net/manual/en/timezones.php)
// you have to specify every time zone (even odd-balls like Napal) if you want every time zone to work correctly
if ($pubDatetimezone == "PST" || $pubDatetimezone == "PDT") date_default_timezone_set("America/Los_Angeles");
if ($pubDatetimezone == "MST" || $pubDatetimezone == "MDT") date_default_timezone_set("America/Denver");
if ($pubDatetimezone == "CST" || $pubDatetimezone == "CDT") date_default_timezone_set("America/Chicago");
if ($pubDatetimezone == "EST" || $pubDatetimezone == "EDT") date_default_timezone_set("America/Montreal");
// shows the incorrect time but the correct time zone (WAT)
if ($pubDatetimezone == "WAT") date_default_timezone_set("Africa/Lagos");
// displays the correct time but the incorrect time zone (AZOT)
// if ($pubDatetimezone == "WAT") date_default_timezone_set("Atlantic/Azores");
美国时区工作得很好,但非洲时区显示不正确。日期/时间应该显示Friday, November 01, 2013 @ 6:00pm WAT
,但它正在显示Friday, November 01, 2013 @ 8:00pm WAT
。
我的服务器时间非常正确(在正确时间和正确时区的几分钟内)。我正在导入的 XML 数据具有正确的 date/time <pubDate>Fri, 01 Nov 2013 18:00:00 WAT</pubDate>
。值得注意的是,我使用的是 Windows 服务器、IIS 7 和 PHP 5.3.10。
WAT 不使用夏令时。即使是这样,那么时间也只有1个小时的休息时间和2个小时的休息时间。我们最终不得不在 XML 中输入不正确的时间,以便 PHP 显示正确的时间。
关于有什么问题的任何想法?