小时内输出不正确


Hour in time not outputting correct

我使用Wanp作为测试服务器。下面是我的代码:

$dt = time();
$mysql_datetime = strftime("%Y-%m-%d %H:%M:%S %p %z" , $dt);
echo $mysql_datetime;

输出如下:

2011-04-17 01:36:55 PM Eastern Standard Time

我的问题是,所有的信息都是正确的,除了一个小时,它提前了4小时。假设时间(01 PM)为(09 AM)。我在电脑上查了日期和时间,时区是正确的。什么会导致这种情况发生,请帮助。

这很可能是由于时区设置不正确。(虽然奇怪的是,%z是正确的,我假设它是)

您是否尝试使用适当的时区值调用date_default_timezone_set ?

您必须首先正确设置您的时区。

使用date_default_timezone_set。以下是支持的时区列表。

您可以尝试使用DateTime类(假设您有一个合理的最近的php)?

类似:

$dt = new DateTime();
echo $dt->format('Y-m-d H:i:s A e');

或者,如果它仍然得到错误的时区,您可以尝试指定它:

$dt = new DateTime(null, new DateTimeZone('EST'));
echo $dt->format('Y-m-d H:i:s A e');

关于更多的调试信息,我建议你看看ini_get('date.timezone'),如果不正确,应该在你的php.ini文件中正确配置。