2011-09-06 73 views
0

这是我的问题,我有一个来自php的时间戳,服务器的时间是从我的3个小时。我已经将时间偏移了三个小时,但很快意识到,在凌晨2点,时间戳的日期部分读取日期(日期和月份)的前一天,并且直到凌晨3点才改变。这是一个问题,因为日期很重要,我需要它是准确的。我尝试过时区更改,但似乎无法使其工作。我住在俄亥俄州,所以我需要的时间和服务器所在的时区是三个小时的时间。所以,有两件事可以帮助我,一个是时区变化,一天工作3小时,而不是时间。这里是我当前的代码:php日期补偿

$timechange = mktime(date("g")+3, date("i"), 0, date("m"), date("d"), date("y")); 

$date = date("D, d M Y g:i",$timechange); 

回答

4
$now = new DateTime('now', new DateTimeZone('America/Ohio')); // whatever your TZ's name happens to be 

$now->setTimeZone('America/ServerTZ'); // reset to your server's TZ 

$datestr = $now->format('D, d M Y g:i'); // get TZ's time as a nice string 

通过做setTimeZone时,将影响函数的输出 - 内部时间戳是不变的。

+0

我说了很快,它返回这个错误:'致命的错误:不能实例化不存在的类:datetime' – Osman

+0

DateTime被添加到5.2中。 –

+0

有没有解决这个问题的方法? – Osman