前言

当我所有东西基本设置完了以后发现了一个问题:后台撰写文章发布后文章显示时间为八小时前

解决方法

▶首先确定服务器时间与北京时间同步(没问题看下面)
▶typecho 默认的时区是 UTC 协调世界时,我们需要将它改为 Asia/Shanghai 具体的操作方法是在网站的根目录下的 var/Widget/Init.php 文件中找到以下字段进行修改

 @date_default_timezone_set('UTC');    将其中的 UTC 改成 Asia/Shanghai 或你需要的时区

{cat_copy text="@date_default_timezone_set('UTC');"}
{cat_copy text="Asia/Shanghai"}

标签: typecho, 教程

已有 6 条评论

  1. 这个问题的原因其实并不是 Typecho 默认时区为 UTC(typecho 的默认时区应该是 UTC+8 的),而是 PHP 的默认时区为 UTC。

    Typecho 后台可以设置时区,但 Typecho 使用的是自己实现的一套时区计算时间的代码 `Typecho\Date`,而没有调用 PHP 的 `date_timezone_set` 去修改 PHP 的时区设置。

    1. 所以:

      1. Typecho 后台设置的时区只对 Typecho 提供的一些时间打印函数生效(比如 `Widget\Contents->date()`) ,而对 php 内置的日期时间函数(比如 `date`)不生效;
      2. 主题打印的时间不对,很可能是因为没有调用 Typecho 的时间打印函数,而是直接调用了 php 的 date 函数。

      1. 看懂了好像也没看懂?

  2. ???祝小站越做越好

  3. 按照这个方法真成功了 ,终于解决了我的困扰。感谢打扰???

添加新评论