php实现用已经过去多长时间的方式显示时间
本文实例讲述了php用已经过去多长时间的方式显示时间的方法。分享给大家供大家参考。具体如下:
这里以一种可读性比较好的方式显示已经过去多长时间,比如:距离现在10秒,距离现在1天等等。
functiontime_is_older_than($t,$check_time){
$t=strtolower($t);
$time_type=substr(preg_replace('/[^a-z]/','',$t),0,1);
$val=intval(preg_replace('/[^0-9]/','',$t));
$ts=0;
//(s)econds,(m)inutes,(d)ays,(y)ears
if($time_type=='s'){$ts=$val;}
elseif($time_type=='m'){$ts=$val*60;}
elseif($time_type=='h'){$ts=$val*60*60;}
elseif($time_type=='d'){$ts=$val*60*60*24;}
elseif($time_type=='y'){$ts=$val*60*60*24*365;}
else{die('Unknowntimeformatgiven!');}
if($check_time<(time()-$ts)){returntrue;}
returnfalse;
}
//使用范例:
//timestamptotest:
//(couldbefromandatabaseorsomethingelse)
$time=1146722922;
//longifcheck:
if(time_is_older_than('30m',$time)){
print'Thegiventimestamp:'.date('ldS\ofFYh:i:sA',$time);
print"-isolderthan30minutes<br/>\n";
}
else{
print'Thegiventimestamp:'.date('ldS\ofFYh:i:sA',$time);
print"-isNOTolderthan30minutes<br/>\n";
}
//shortchecks:
if(time_is_older_than('10s',$time)){print"Isolderthan10seconds<br/>\n";}
if(time_is_older_than('200m',$time)){print"Isolderthan200minutes<br/>\n";}
if(time_is_older_than('2h',$time)){print"Isolderthan2hours<br/>\n";}
if(time_is_older_than('4d',$time)){print"Isolderthan4days<br/>\n";}
if(time_is_older_than('1y',$time)){print"Isolderthanoneyear<br/>\n";}
希望本文所述对大家的php程序设计有所帮助。