php通过时间戳自动计算 1分钟前,N小时前,N年前的例子
最近刚好有一个php项目需求,需要用显示帖子的发布时间,时间显示格式要求是这种的:N分钟前,N小时前,N个月前,N年前;其实实现方法有很多种,我这里就用了最简单傻瓜式的方式来写。直接判断秒数来输出对应的时间,具体如下:
1分钟 = 60秒
1小时 = 3600秒
一天(24小时) = 86400秒
一个月(30天) = 2592000秒
一年(365天) = 31104000秒
安装以上时间关系,写一个函数即可,如下:
/** * 将时间戳转换成1天前 1周前 1小时前这种格式 * @param int $statTime 时间戳 * @return string */ public static function timeToText($statTime) { $nowTime = time(); //现在的时间戳 $gap = $nowTime - $statTime; //时间间隔 //判断是否为秒 if($gap > 0 && $gap < 60){ return $gap . '秒前'; } //判断是否为分钟 if($gap > 60 && $gap < 3600){ return floor($gap / 60) . '分钟前'; } //判断是否为小时 if($gap > 3600 && $gap < 86400){ return floor($gap / 3600) . '小时前'; } //判断是否为天 if($gap > 86400 && $gap < 2592000){ return floor($gap / 86400) . '天前'; } //判断是否为月,这里的月统一按照30天算 if($gap > 2592000 && $gap < 31104000){ return floor($gap / 2592000) . '月前'; } //最后判断为年 if($gap > 31104000){ return floor($gap / 31104000) . '年前'; } }
本文链接:https://yun.ha.cn/post/137.html 转载需授权!