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>";

?>

相关推荐