2012-01-10 87 views
0

我设置时区在PHP中:PHP的时区和时间不匹配

date_default_timezone_set("Europe/Istanbul"); 
ini_set('date.timezone', 'Europe/Istanbul'); 

然后当我得到的日期时间和时区

date('Y-m-d H:i'); date_default_timezone_get(); 

,打印

2012-01-10 05:20 Europe/Istanbul 

时间区域是正确的,但时间是错误的, 任何想法,会是什么原因? 谢谢!

+0

当时区无法识别时,时间通常以UTC显示。您输出的时间是您所需时间的正确UTC表示形式吗?如果是这样,那至少可以让你知道“欧洲/伊斯坦布尔”不被认可。 FWIW,该时区在我刚刚检查过的所有Debian,Ubuntu和Solaris系统上都能识别。 – Celada 2012-01-10 10:14:52

+0

下一次,将代码放入代码块(每行前4个空格)。编辑器工具栏是你的朋友。 – Christian 2012-01-10 10:14:57

+1

你能描述一下*如何*时间不正确?太迟,太早...以及多少小时? – 2012-01-10 10:15:32

回答

0

如果你的PHP> = 5.2.0,那么你可以使用DateTime对象:

$my_timezone = new DateTimeZone('America/Los_Angeles'); 
$far_away_timezone = new DateTimeZone('Europe/Istanbul'); 

$dt = new DateTime(date('Y-m-d H:i:s'), $my_timezone); 
$dt->setTimezone($far_away_timezone); 

echo $dt->format('Y-m-d H:i'); 

希望它能帮助。