博客不同于文章系统和论坛,对时间要求是很严格的,精确到天。为什么梦游的主机老是出现时间对不上的情况呢。而我本地,和其他服务器都正常显示。经过对date函数深入研究,终于发现。
用date('Z')是时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。我的4台服务器的这个偏差都是0。但是梦游的服务器是28800。所以历来的版本都出现时间问题的原因。
知道原因之后,我只要判断如果date('Z')不是0的话。就对date('Z')进行运算,就正常了。下面一个函数就可以解决这个问题。用在查询timestamp的地方,就应该会精确了。
function correcttime($timestamp) {
global $timeoffset;
$z = date('Z');
if ($z != '0') {
$timestamp = $timestamp - ($z - $timeoffset * 3600);
} else {
$timestamp = $timestamp - $timeoffset * 3600;
}
return $timestamp;
}
时间问题终于彻底解决了。劳动节凌晨解决的问题,看来任何事,只要通过付出,就一定有回报。祝所有劳动人民节日快乐。
