前言
当我所有东西基本设置完了以后发现了一个问题:后台撰写文章发布后文章显示时间为八小时前
解决方法
▶首先确定服务器时间与北京时间同步(没问题看下面)
▶typecho 默认的时区是 UTC 协调世界时,我们需要将它改为 Asia/Shanghai 具体的操作方法是在网站的根目录下的 var/Widget/Init.php 文件中找到以下字段进行修改
@date_default_timezone_set('UTC'); 将其中的 UTC 改成 Asia/Shanghai 或你需要的时区
@date_default_timezone_set('UTC');
Asia/Shanghai
6 条评论
这个问题的原因其实并不是 Typecho 默认时区为 UTC(typecho 的默认时区应该是 UTC+8 的),而是 PHP 的默认时区为 UTC。
Typecho 后台可以设置时区,但 Typecho 使用的是自己实现的一套时区计算时间的代码 `Typecho\Date`,而没有调用 PHP 的 `date_timezone_set` 去修改 PHP 的时区设置。
所以:
1. Typecho 后台设置的时区只对 Typecho 提供的一些时间打印函数生效(比如 `Widget\Contents->date()`) ,而对 php 内置的日期时间函数(比如 `date`)不生效;
2. 主题打印的时间不对,很可能是因为没有调用 Typecho 的时间打印函数,而是直接调用了 php 的 date 函数。
看懂了好像也没看懂?
???祝小站越做越好
好 谢谢?
按照这个方法真成功了 ,终于解决了我的困扰。感谢打扰???