服务热线
1888888888
作者:文煞发布时间:2023-06-10分类:Zblog笔记浏览:398
在网站开发中,提供友好且简单易懂的时间格式一直是一个重要的问题。有些用户觉得使用“多少秒前”、“多少分钟前”、“多少小时前”或“多少天前”这样的发布时间格式对SEO会更友好,以及用户体验更好,而zblog默认的时间格式是年月日。为了解决这个问题,前些天站长百科教程网转载分享了一篇《zblog php文章友好时间显示格式为X分钟、X小时、X天、X年前等》的实现代码,很受欢迎,今天站长百科教程网就再分享一个实现代码,即在指定文章发布多少天内使用友好的时间格式,超过了指定的天数则使用正常的年月日的时间格式。
要实现这个功能,我们需要在原来的代码基础上加上一些新的代码段,主要是针对“超过了指定的天数则使用正常的年月日的时间格式”。
我们先来看一下上文引用的 《zblog php文章友好时间显示格式为X分钟、X小时、X天、X年前等》的实现代码:
function adminbk_com_article_time($articleTime) { $getTime = strtotime($articleTime); $diffTime = time() - $getTime; switch ($diffTime) { case $diffTime <= '1' : $time = '刚刚'; break; case $diffTime > '1' && $diffTime <= '60' : $time = floor($diffTime) . '秒前'; break; case $diffTime > '60' && $diffTime <= '3600' : $time = floor($diffTime / 60) . '分钟前'; break; case $diffTime > '3600' && $diffTime <= '86400' : $time = floor($diffTime / 3600) . '小时前'; break; case $diffTime > '86400' && $diffTime <= '2592000' : $time = floor($diffTime / 86400) . '天前'; break; case $diffTime > '2592000': $time = ''.date('Y-m-d G:i:s',$getTime).''; break; } return $time; }
这段代码的核心内容就是将输入的时间字符串转换为Unix时间戳,计算得到距当前时间的时间差,然后根据不同的时间差来进行适当的显示。实现了友好的时间格式的展示。
然而,这种友好的时间格式对于有些用户来说,只在短时间内比较实用。有的用户可能会觉得,在时间过长的情况下(比如超过一天),这个时间格式并不太好用。因此,本文分享的就是如何在指定文章发布多少天内使用友好的时间格式,超过了指定的天数则使用正常的年月日的时间格式。
新的函数实现代码如下:
function adminbk_com_article_time($articleTime,$limitDays=3) { $getTime = strtotime($articleTime); $diffTime = time() - $getTime; if ($diffTime < 0) { return ''; } $interval = date_diff(date_create(),date_create($articleTime)); $days = $interval->format('%a'); if ($days <= $limitDays) { switch ($diffTime) { case $diffTime <= '1' : $time = '刚刚'; break; case $diffTime > '1' && $diffTime <= '60' : $time = floor($diffTime) . '秒前'; break; case $diffTime > '60' && $diffTime <= '3600' : $time = floor($diffTime / 60) . '分钟前'; break; case $diffTime > '3600' && $diffTime <= '86400' : $time = floor($diffTime / 3600) . '小时前'; break; case $diffTime > '86400' && $diffTime <= '2592000' : $time = floor($diffTime / 86400) . '天前'; break; case $diffTime > '2592000': $time = ''.date('Y-m-d G:i:s',$getTime).''; break; } } else { $time = ''.date('Y-m-d G:i:s',$getTime).''; } return $time; }
其中的主要改动是多了一个限制天数的参数 limitDays ,默认为 3 ,即指定了 3 天内使用友好的时间格式,超过了 3 天则使用正常的年月日的时间格式。
代码中加入了 date_diff 来计算两个日期的什么时间差,之后通过时间差和 limitDays 进行比较,得到是否要使用友好的时间格式。另外,还加入了一个判断,如果传入的时间参数 $articleTime 大于当前时间,直接返回空字符串。
在实际使用中,只需要将原来的调用代码改为这个新的函数调用即可,如下:
{adminbk_com_article_time($article.Time())}
通过这个函数实现了在指定文章发布多少天内使用友好的时间格式,超过了指定的天数则使用正常的年月日的时间格式。这样,不仅保证了时间格式简单易懂,而且对用户在长时间的圈子中也更为实用。是非常不错的一种时间格式实现方法。
分享:
支付宝
微信