几小时前等容易阅读的时间

 应用     |      2020-02-26 19:37

在品种中时间一律彰显为二零一五-10-2009:22显得很呆板。在和讯、QQ空间等网址日常会展现为几秒前,几分钟前,几钟头前等轻巧阅读的时刻,大家称为自个儿的时刻格式。那么用php怎么落到实处呢?

粗粗思路如下:

假诺是跨年而且不仅3天就展现为具体的小时

万一是后天的

一经是一分钟内则体现几秒以前

如果是一钟头内则呈现几分钟前

倘如果当天且超越一钟头则显示为几钟头前

竞博体育app下载 ,假定是即日则展现为今天几点

如若是前不久则呈现为前些天几点

一旦过量八天(未有跨年卡塔尔(قطر‎则显示为几月几号

据书上说上述思路就简单写出实现代码了:

实今世码如下:

//格式化友好显示时间 function formatTime($time卡塔尔{ $now=time(卡塔尔国; $day=date('Y-m-d',$time卡塔尔; $today=date('Y-m-d'卡塔尔(قطر‎; $dayArr=explode('-',$dayState of Qatar; $todayArr=explode('-',$today卡塔尔; //间距的小运,这种格局超越30天则不必然标准,可是30天内是准确的,因为叁个月或许是30天也说不允许是31天 $days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]卡塔尔(قطر‎; //间距的秒数 $secs=$now-$time; if($todayArr[0]-$dayArr[0]>0 && $days>3卡塔尔{//跨年且当先3天 return date('Y-m-d',$time卡塔尔; }else{ if($days<1卡塔尔(قطر‎{//前不久 if($secs<60)return $secs.'秒前'; elseif($secs<3600卡塔尔return floor($secs/60State of Qatar."分钟前"; else return floor($secs/3600卡塔尔国."小时前"; }else if($days<2卡塔尔国{//前几日$hour=date('h',$time卡塔尔; return "昨日".$hour.'点'; }elseif($days<3State of Qatar{//明天 $hour=date('h',$time卡塔尔; return "前日".$hour.'点'; }else{//四日前 return date('m月d号',$time卡塔尔(قطر‎; } } }