PHP入门培训教程 php中的时间处理
php中的时间处理
PHP入门培训教程兄弟连PHP培训
小编整理的 php中的时间处理:
<?
/**
*转换为UNIX时间戳
*/
functiongettime($d){
if(is_numeric($d))
return$d;
else{
if(!is_string($d))return0;
if(ereg(":",$d)){
$buf=split("+",$d);
$year=split("[-/]",$buf[0]);
$hour=split(":",$buf[1]);
if(eregi("pm",$buf[2]))
$hour[0]+=12;
returnmktime($hour[0],$hour[1],$hour[2],$year[1],$year[2],$year[0]);
}else{
$year=split("[-/]",$d);
returnmktime(0,0,0,$year[1],$year[2],$year[0]);
}
}
}
/**
*
*DateAdd(interval,number,date)
*返回已添加指定时间间隔的日期。
*Inetrval为表示要添加的时间间隔字符串表达式,例如分或天
*number为表示要添加的时间间隔的个数的数值表达式
*Date表示日期
*
*Interval(时间间隔字符串表达式)可以是以下任意值:
*yyyyyear年
*qQuarter季度
*mMonth月
*yDayofyear一年的数
*dDay天
*wWeekday一周的天数
*wwWeekofyear周
*hHour小时
*nMinute分
*sSecond秒
*w、y和d的作用是完全一样的,即在目前的日期上加一天,q加3个月,ww加7天。
*/
functionDateAdd($interval,$number,$date){
$date=gettime($date);
$date_time_array=getdate($date);
$hours=$date_time_array["hours"];
$minutes=$date_time_array["minutes"];
$seconds=$date_time_array["seconds"];
$month=$date_time_array["mon"];
$day=$date_time_array["mday"];
$year=$date_time_array["year"];
switch($interval){
case"yyyy":$year+=$number;break;
case"q":$month+=($number*3);break;
case"m":$month+=$number;break;
case"y":
case"d":
case"w":$day+=$number;break;
case"ww":$day+=($number*7);break;
case"h":$hours+=$number;break;
case"n":$minutes+=$number;break;
case"s":$seconds+=$number;break;
}
$timestamp=mktime($hours,$minutes,$seconds,$month,$day,$year);
return$timestamp;
}
/**
*DateDiff(interval,date1,date2)
*返回两个日期之间的时间间隔
*intervals(时间间隔字符串表达式)可以是以下任意值:
*w周
*d天
*h小时
*n分钟
*s秒
*/
functionDateDiff($interval,$date1,$date2){
//得到两日期之间间隔的秒数
$timedifference=gettime($date2)-gettime($date1);
switch($interval){
case"w":$retval=bcdiv($timedifference,604800);break;
case"d":$retval=bcdiv($timedifference,86400);break;
case"h":$retval=bcdiv($timedifference,3600);break;
case"n":$retval=bcdiv($timedifference,60);break;
case"s":$retval=$timedifference;break;
}
return$retval;
}
?>
<?
//测试例
$d1="2002-01-11";
$d2=date("Y-m-d",dateadd("d",15,$d1));
echo$d1."的".datediff("d",$d1,$d2)."天后是$d2<br>";
echo$d1."的10天前是".date("Y-m-d",dateadd("d",-10,$d1))."<br>";
$d3=date("Y/m/dH:i:s");
echo"现在是".$d3."距离2002/2/1212:59:59还有".datediff("s",$d3,"2002/2/1212:59:59")."秒<br>";
?>