发现问题
其实最开始发说说的时候就发现了发送时间不太对,只是当时没多在意,后来又多发了几条之后觉得不便于管理,而且强迫症看着难受。就想着是不是设置出了问题,然后去后台看了看,设置没啥问题,但就是相差八小时。因为不想重搭,于是网上搜了搜代码设置时区是在哪个文件设置,文章挺多。但是让人气愤的是,文章几乎都是一模一样的。
搜索到一堆,就没搜索到一个能解决问题的。说什么改
var/typecho/Data.php
文件,改usr/Typecho/Data.php
文件等等。然而按网上的教程,并未找到Data.php
这个文件;花了大把时间找了个郁闷!
问题分析
根据以往经验,刚好往后了8小时,一下子就想到了,应该是时区不对,应该是系统时区为UTC
了;中国东八区时区(UTC+8)
应该为Asia/Shanghai
,于是到后台网站基础设置里看,时区选择已经是北京时间 “北京时间 香港,新加坡,越南(GMT +8)
”。
于是自己找,最终找到了这个文件var/Widget/Init.php
,在这个文件下直接设置时区为Asia/Shanghai
即可。
快速开始
vim 博客安装根目录/var/Widget/var/Widget/Init.php
找到Init.php文件中的这段代码
/** 默认时区 */
if (function_exists("ini_get") && !ini_get("date.timezone") && function_exists("date_default_timezone_set")) {
@date_default_timezone_set('UTC');
}
推荐时区查询器,可根据大洲/地区查询
Time Zone Converter
修改成Asia/Shanghai时区
/** 默认时区 */
if (function_exists("ini_get") && !ini_get("date.timezone") && function_exists("date_default_timezone_set")) {
@date_default_timezone_set('Asia/Shanghai');
}
这样,再发布博客/评论,时间就和服务器时间一样啦!
php.ini中更改时区
因为博主在国外,所以我按照上面方法在系统时间设置和配置文件Init.php
中把地区都改为America/Vancouver
的时候,显示的时区竟然还是亚洲/上海,这就有些蛋疼了。思索了很久,突然想到Typecho时间写入是借助PHP进行时间戳记录的。于是赶紧去php.init
中搜索timezone
,发现果然默认的时区是PRC(China Standard Time)
,于是变改成了我当地的时区America/Vancouver,重载配置,重启,大功告成!系统时间终于对了😁