下面介绍两种显示文章最新时间的方式:


1. 用 “Date time” 日期形式显示

复制粘贴下面的代码到你想要显示时间的位置,一般修改的文件为 single.php,修改的文件因主题而异。

<time class="updated" datetime="<?php echo esc_attr( get_the_modified_date( DATE_W3C ) ); ?>">
  Last updated: <?php the_modified_time('F j, Y'); ?> at <?php the_modified_time('g:i a'); ?>
</time>

其中 “DATE_W3C” 为 php 时间函数(时区格式问题

上述代码输出 Html 结构如下:

其他可使用的时间格式如下(截取 WordPress 后台时间设置区域):

了解更多 Word Press 时间格式解析……

2. 用 “Time ago” 形式代替日期显示

使用 WordPress 内置函数 human_time_diff() 实现。复制粘贴下面的代码到你想要显示时间的位置。

<time class="updated" datetime="<?php echo esc_attr( get_the_modified_date( DATE_W3C ) ); ?>">
  <?php printf( __( 'Last updated: %s ago', 'aimeesign' ), human_time_diff( get_the_modified_date( 'U' ), current_time( 'timestamp' ) ) ); ?>
</time>

其中,”aimeesign” 为主题名称,将其改成你的主题即可,当设置为自定义的 post_type 名称时,可作用于对应的文章类型。

上述代码输出 Html 结构如下:

php 有提供很多处理时间的参数,但是 WordPress 有自己一套用来处理时间(可以同时处理 GMT 和本地时间)的函数:current_time(),需要按照它的函数去使用。

current_time( 'timestamp' ) 为获取本地时间,改成 current_time( 'timestamp', 1 ) 为返回 GMT(零时区)时间。


时区格式问题

网站需要考虑到跨时区的问题,如果站点时区格式不统一,在 Google 引擎索引(数据化结构)时,有可能会出现时间不显示或显示时间不对、不一致的情况。从 Google 官方文档了解到,日期使用 ISO 8601 标准,根据标准表示 UTC(国际标准时间)中的日期和时间函数为 DATE_W3C

php 常见的时间函数有:

  • DATE_COOKIE – HTTP Cookies (e.g. Friday, 12-Apr-13 15:52:01 UTC)
  • DATE_ISO8601 – ISO-8601 (e.g. 2013-04-12T15:52:01+0000)
  • DATE_W3C – World Wide Web Consortium (e.g. 2013-04-12T15:52:01+00:00)

了解更多 php 时间函数解析……