全方位站长技能、SEO优化学习平台
当前位置:网站首页 > Zblog笔记 > 正文

zblog php文章友好时间显示格式为X分钟、X小时、X天、X年前

作者:文煞发布时间:2023-06-10分类:Zblog笔记浏览:398


温馨提示:手机扫码可阅读当前文章!
文章简介:在网站开发中,提供友好且简单易懂的时间格式一直是一个重要的问题。有些用户觉得使用“多少秒前”、“多少分钟前”、“多少小时前”或“多少天前”这样的发布时间格式对SEO会更友好,以及用户体验更好,而zblog默认的时间格式是年月日。为了解决这个...

在网站开发中,提供友好且简单易懂的时间格式一直是一个重要的问题。有些用户觉得使用“多少秒前”、“多少分钟前”、“多少小时前”或“多少天前”这样的发布时间格式对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())}


通过这个函数实现了在指定文章发布多少天内使用友好的时间格式,超过了指定的天数则使用正常的年月日的时间格式。这样,不仅保证了时间格式简单易懂,而且对用户在长时间的圈子中也更为实用。是非常不错的一种时间格式实现方法。

欢迎您,来自美国的朋友,您的IP:3.147.78.242,您的网络:Amazon_EC2服务器


Zblog笔记排行
随机推荐
猜你喜欢

服务热线

1888888888

要发发发发发发

站长微信公众号

站长微信公众号

分享:

支付宝

微信