zl程序教程

您现在的位置是:首页 >  后端

当前栏目

php自定义的格式化时间示例代码

PHP代码 时间 示例 自定义 格式化
2023-06-13 09:15:13 时间
如:时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前,不多说了,直接贴上代码:
复制代码代码如下:

/**
*格式化时间
*@paraminteger$timestamp时间戳
*@paramstring$formatdt=日期时间d=日期t=时间u=个性化其他=自定义
*@paraminteger$timeoffset时区值
*@paramstring$custom_format自定义时间格式
*@returnstring
*/
publicfunctiondgmdate($timestamp,$format="dt",$timeoffset="9999",$custom_format=""){
$return="";
$now=time();
$day_format="Y-n-j";
$time_format="H:i:s";
$date_format=$day_format."".$time_format;
$offset=8;//这里默认是东八区,也就是北京时间
$lang=array(
"before"=>"前",
"day"=>"天",
"yday"=>"昨天",
"byday"=>"前天",
"hour"=>"小时",
"half"=>"半",
"min"=>"分钟",
"sec"=>"秒",
"now"=>"刚刚",
);
$timeoffset=$timeoffset==9999?$offset:$timeoffset;
$timestamp+=$timeoffset*3600;
switch($format){
case"dt":
$format=$date_format;
break;
case"d":
$format=$day_format;
break;
case"t":
$format=$time_format;
break;
}
if($format=="u"){
$todaytimestamp=$now-($now+$timeoffset*3600)%86400+$timeoffset*3600;
$s=gmdate(empty($custom_format)?$date_format:$custom_format,$timestamp);
$time=$now+$timeoffset*3600-$timestamp;
if($timestamp>=$todaytimestamp){
if($time>3600){
$return="<spantitle="".$s."">".intval($time/3600).$lang["hour"].$lang["before"]."</span>";
}elseif($time>1800){
$return="<spantitle="".$s."">".$lang["half"].$lang["hour"].$lang["before"]."</span>";
}elseif($time>60){
$return="<spantitle="".$s."">".intval($time/60).$lang["min"].$lang["before"]."</span>";
}elseif($time>0){
$return="<spantitle="".$s."">".$time.$lang["sec"].$lang["before"]."</span>";
}elseif($time==0){
$return="<spantitle="".$s."">".$lang["now"]."</span>";
}else{
$return=$s;
}
}elseif(($days=intval(($todaytimestamp-$timestamp)/86400))>=0&&$days<7){
if($days==0){
$return="<spantitle="".$s."">".$lang["yday"].gmdate($time_format,$timestamp)."</span>";
}elseif($days==1){
$return="<spantitle="".$s."">".$lang["byday"].gmdate($time_format,$timestamp)."</span>";
}else{
$return="<spantitle="".$s."">".($days+1).$lang["day"].$lang["before"]."</span>";
}
}else{
$return=$s;
}
}else{
$return=gmdate($format,$timestamp);
}
return$return;
}