php日期偏移

时间:2011-09-06 16:39:07

标签: php

这是我的问题,我有来自php的时间戳,服务器时间是我的3小时。我把时间缩短了三个小时,但很快就意识到,凌晨2点,时间戳的日期部分读取日期(日期和月份)的前一天,直到凌晨3点才变化。这是一个问题,因为日期很重要,我需要它准确。我已经尝试过时区改变,但似乎无法让它发挥作用。我住在俄亥俄州,所以我需要的时间和服务器所在的时区落后三个小时。因此,有两件事情可以帮助我,时区变化可以起作用,或者将时间缩短3小时,而不仅仅是时间。这是我目前的代码:

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

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

2 个答案:

答案 0 :(得分: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,可以影响函数的OUTPUT - 内部时间戳保持不变。

答案 1 :(得分:1)

不要自己调整时间,而是先预先设置时区。

请参阅http://php.net/manual/en/function.date-default-timezone-set.php