php将日期格式转换成xx天前的格式
本文实例讲述了php将日期格式转换成xx天前格式的方法。分享给大家供大家参考。具体如下:
这段代码可以把时间格式化成3天前,5秒前,2年前的形式
//convertadateintoastringthattellshowlongago
//thatdatewas....eg:2daysago,3minutesago.
functionago($d){
$c=getdate();
$p=array('year','mon','mday','hours','minutes','seconds');
$display=array('year','month','day','hour','minute','second');
$factor=array(0,12,30,24,60,60);
$d=datetoarr($d);
for($w=0;$w<6;$w++){
if($w>0){
$c[$p[$w]]+=$c[$p[$w-1]]*$factor[$w];
$d[$p[$w]]+=$d[$p[$w-1]]*$factor[$w];
}
if($c[$p[$w]]-$d[$p[$w]]>1){
return($c[$p[$w]]-$d[$p[$w]]).''.$display[$w].'sago';
}
}
return'';
}
//youcanreplacethisifneedbe.
//Thisconvertsmydatesreturnedfromamysqldatestring
//intoanarrayobjectsimilartothatreturnedbygetdate().
functiondatetoarr($d){
preg_match("/([0-9]{4})(\\-)([0-9]{2})(\\-)([0-9]{2})([0-9]{2})(\\:)([0-9]{2})(\\:)([0-9]{2})/",$d,$matches);
returnarray(
'seconds'=>$matches[10],
'minutes'=>$matches[8],
'hours'=>$matches[6],
'mday'=>$matches[5],
'mon'=>$matches[3],
'year'=>$matches[1],
);
}
希望本文所述对大家的php程序设计有所帮助。