经常在朋友圈、Q空间、微博上看到动态发布时间和评论时间。都是显示昨天、前天、几天前,比直接显示几个月、几天、几分钟、几秒要优雅的多。所以我自己的项目也想采用这种优雅直观的方式。在网上找了各种计算天差的例子,都是直接把时间戳除以86400,比如现在是17:08,而动态更新的时间是22:00前天,这样计算出来的天数差是1,不是两天前。实际情况应该是昨天任意时间算1天前,前天任意时间算2天前,于是自己想了想,动态更新时间和今天相差23秒:59:59等同于86400(24x3600)除法后向下取整得到天数差,比如昨天00:00~昨天23:59:59和今天23之间的任意时间:59:59,相差86400~(86400x2)天,也就是2天。/***获取过去了多长时间*PHP时间转换*just,几分钟前,几个小时前*今天,昨天,前天,几天前*@paramstring$targetTimetimestamp*@returnstring*/functionget_last_time($targetTime){//今天最长时间$todayLast=strtotime(date('Y-m-d23:59:59'));$agoTimeTrue=time()-$targetTime;$agoTime=$todayLast-$targetTime;$agoDay=floor($agoTime/86400);如果($agoTimeTrue<60){$result='刚刚';}elseif($agoTimeTrue<3600){$result=(ceil($agoTimeTrue/60)).'几分钟前';}elseif($agoTimeTrue<3600*12){$result=(ceil($agoTimeTrue/3600))。'小时候前';}elseif($agoDay==0){$result='今天'.日期('H:i',$targetTime);}elseif($agoDay==1){$result='昨天'.日期('H:i',$targetTime);}elseif($agoDay==2){$result='前天'.日期('H:i',$targetTime);}elseif($agoDay>2&&$agoDay<16){$result=$agoDay.'天前'。日期('H:i',$targetTime);}else{$format=date('Y')!=date('Y',$targetTime)?"Y-m-dH:i":"m-dH:i";$result=date($format,$targetTime);}return$result;}原文http://www.tech1024.cn/origin...
