【发布时间】:2012-01-11 22:54:15
【问题描述】:
PHP date() & time() 返回错误时间:
当date.timezone = "Europe/Riga" 时date() 返回的时间是03-12-2011 08:57:12,但系统时间是03-12-2011 01:57:12(时区欧洲/里加-当时的正确时间)。
当我将时区更改为“欧洲/伦敦”时,时间更改为03-12-2011 06:57:12(实际时间02-12-2011 23:57:12)
date/hwclock --show 返回的时间是正确的(03-12-2011 01:57:12 系统时区设置为里加)
操作系统:Debian 6.0
我已经检查了关于 SO/Google 上类似问题的大部分问题,但它们似乎都指定了错误的时区。
据我所知,php -> os 之间存在问题。 当然,因为不正确的时间偏移总是恒定的,我可以减去差异,但这不是一个合适的解决方案。
任何想法将不胜感激。
【问题讨论】:
-
您的
date()值是什么?例如date('Y-m-d H:i:s') -
如果您使用
DateTime类来确定日期,并结合DateTimeZone会发生什么?例如$d = new DateTime('', new DateTimeZone('Europe/Riga')); echo $d->format('Y-m-d H:i:s');