知行何家 - 编辑时间
type: channel
link: https://www.hehome.xyz/tag/%E7%BC%96%E8%BE%91%E6%97%B6%E9%97%B4/
items: 增加最后编辑时间

增加最后编辑时间
type: item
date: 2018-11-16T21:29:00+08:00
description: 经常的，我们会在发布文章之后去修改它，但是 Typecho 默认显示发布时间，而且我也不愿意在每次修改之后修改自己的发布时间，这样反而不好，所以就需要增加一个最后编辑时间。搜索了一下，发现 Typecho 自带有每篇文章的最后编辑时间的，可以通过 $this->modified 获得这篇文章的最后编辑时间。通过在 post.php 末尾的标签后面添加 最后编辑时间: <?php echo date('Y-m-d h:i a', $this->modified;?> 便可以显示该文章的最后编辑时间。但是，我发现显示出来的时间，时区不对，正好和我现在的本地时间相差了8小时，然而文章的发布时间显示是正确。最后我找到了问题所在，原来这是 Typecho 的 时区问题，它在计算时区偏移的时候用的后台设置的时区偏移 - 服务器的时区偏移，我的后台设置是 UTC+8，而服务器也是 UTC+8，这样就导致了我的最后的时区偏移为零，所以显示出来的时间和本地时间相差了8小时。用那篇文章里的方法修改了一下我的代码: 最后编辑时间: <?php echo date('Y-m-d h:i a', $this->modified + ($this->options->timezone - idate("Z")));?> 现在就能够正常的显示最后编辑时间了。可喜可贺可喜可贺。