终于发现了时间相差8小时的问题所在~

$curr_time=time();
if(date("T",$curr_time)!="中国标准时间"){
$curr_time+=8*60*60;
}
$default_time = isset( $default_time )?$default_time : $curr_time;
这几行代码就是今天最大的收获了。
从中午一直到现在,都在研究为什么发表新条目的页面add.php中显示的时间不正常的问题。经过再三查找,在scripts/sb_texteditor.php中找到了两处问题,上面的代码列举的是函数editor_date_select()中的一处,该文件中还有一处time()问题引发的错误。
错误原因: time()函数在部分服务器上运行取得时间不一致。
个人分析:不同的服务器,可能时间时区设置不同,尤其是使用中文操作系统的外国产服务器。
经过试验发现,在不同的机器上,time()函数返回不同的值,在我的机器和服务器上,返回的值总是比标准中国时间少8小时。也就是说,从服务器获得的时间是英国标准时间(国际标准时间UTC),而自己机器上显示的是标准中国时间,因此两者之间相差8小时。
使用上面的程序,判断如果取得的不是中国标准时间,则将时间+8小时。

注意:以上修改仅针对中国境内中文服务器使用者。

估计,显示归档和首页最新发布的内容无法立即显示也是这个原因,需要找找相关函数进行修改。等修改完这个地方,就真的完成啦~或者说,终于完成啦~

发表评论

邮箱地址不会被公开。 必填项已用*标注

You must enable javascript to see captcha here!