经常的,我们会在发布文章之后去修改它,但是 Typecho 默认显示发布时间,而且我也不愿意在每次修改之后修改自己的发布时间,这样反而不好,所以就需要增加一个最后编辑时间。

搜索了一下,发现 Typecho 自带有每篇文章的最后编辑时间的,可以通过 $this->modified 获得这篇文章的最后编辑时间。

通过在 post.php 末尾的标签后面添加

<p class="post-meta">
  最后编辑时间:
  <?php echo date('Y-m-d h:i a', $this->modified;?>
</p>

便可以显示该文章的最后编辑时间。

但是,我发现显示出来的时间,时区不对,正好和我现在的本地时间相差了8小时,然而文章的发布时间显示是正确。

最后我找到了问题所在,原来这是 Typecho时区问题,它在计算时区偏移的时候用的后台设置的时区偏移 - 服务器的时区偏移,我的后台设置是 UTC+8,而服务器也是 UTC+8,这样就导致了我的最后的时区偏移为零,所以显示出来的时间和本地时间相差了8小时。

用那篇文章里的方法修改了一下我的代码:

<p class="post-meta">
  最后编辑时间:
  <?php echo date('Y-m-d h:i a', $this->modified + ($this->options->timezone - idate("Z")));?>
</p>

现在就能够正常的显示最后编辑时间了。可喜可贺可喜可贺。

标签: 时区, 编辑时间