几分钟前几天前等的时间显示规则代码整理(tp5)

要显示例如:几秒前,几分钟前,几天前等的功能,使用的TP5,写了个公共函数,代码如下:

数字没样式的代码:

/*文章发布多少时间前*/
    function TimeRule($time)
    {
        $startdate = date('Y-m-d H:i:s',$time);//时间戳转日期(要是日期的话可以不用转)
        $enddate = date('Y-m-d H:i:s');//当前日期
        $date = floor((strtotime($enddate) - strtotime($startdate)) / 86400);
        $hour = floor((strtotime($enddate) - strtotime($startdate)) % 86400 / 3600);
        $minute = floor((strtotime($enddate) - strtotime($startdate)) % 86400 % 3600 / 60);
        $second = floor((strtotime($enddate) - strtotime($startdate)) % 86400 % 60);
        if ($date > 90)
        {
            return '很久前';
        }
        elseif ($date >= 30 && $date <= 90)
        {
            return floor($date / 30) . '个月前';
        }
        elseif ($date > 0 && $date < 30)
        {
            return $date . '天前';
        }
        elseif ($hour < 24 && $hour > 0)
        {
            return $hour . '小时前';
        }
        elseif ($minute < 60 && $minute > 0)
        {
            return $minute . '分钟前';
        }
        elseif ($second < 60 && $second > 0)
        {
            return $second . '秒前';
        }
    }

数字有样式代码:

/*文章发布多少时间前*/
    function TimeRule($time)
    {
        $startdate = date('Y-m-d H:i:s',$time);//时间戳转日期(要是日期的话可以不用转)
        $enddate = date('Y-m-d H:i:s');//当前日期
        $date = floor((strtotime($enddate) - strtotime($startdate)) / 86400);
        $hour = floor((strtotime($enddate) - strtotime($startdate)) % 86400 / 3600);
        $minute = floor((strtotime($enddate) - strtotime($startdate)) % 86400 % 3600 / 60);
        $second = floor((strtotime($enddate) - strtotime($startdate)) % 86400 % 60);
        if ($date > 90)
        {
            return "<span style='color: red;'>很久之前</span>";
        }
        elseif ($date >= 30 && $date <= 90)
        {
            return "<p><span style='color: red;'>".floor($date / 30)."</span>个月前</p >";
        }
        elseif ($date > 0 && $date < 30)
        {
            return "<p><span style='color: red;'>".$date."</span>天前</p >";
        }
        elseif ($hour < 24 && $hour > 0)
        {
            return "<p><span style='color: red;'>".$hour."</span>小时前</p >";
        }
        elseif ($minute < 60 && $minute > 0)
        {
            return "<p><span style='color: red;'>".$minute."</span>分钟前</p >";
        }
        elseif ($second < 60 && $second > 0)
        {
            return "<p><span style='color: red;'>".$second."</span>秒前</p >";
        }
    }

数字样式效果图:

在这里插入图片描述

在控制器中调用公共函数:

public function timeShow()
{
   $startdate = "2017-6-30 7:40:00";
   
   $t = TimeRule($startdate);
   echo $t;
}

在前台中调用公共函数:

//tp5.0
<td>{$v.add_time | TimeRule}</td>
	     传参     |   方法
//tp5.1  raw(tp5.1手册使用函数中有解释)
<td>{$v.add_time | TimeRule | raw}</td>
	     传参     |   方法   | raw 不使用(默认)转义

版权声明:本文为qq_44678350原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。