下面介绍两种显示文章最新时间的方式:
- 用 “Date time” 日期形式显示 (e.g. June 16, 2020 at 11:14 am)
- 用 “Time ago” 形式代替日期显示 (e.g. 50 mins ago)
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 后台时间设置区域):
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)
写下你的评论