我使用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
文件中正确配置。