php实现的DateDiff和DateAdd时间函数代码分享
扩展php中的时间函数DateDiff和DateAdd
functionDateDiff($part,$begin,$end)
{
$diff=strtotime($end)-strtotime($begin);
switch($part)
{
case"y":$retval=bcdiv($diff,(60*60*24*365));break;
case"m":$retval=bcdiv($diff,(60*60*24*30));break;
case"w":$retval=bcdiv($diff,(60*60*24*7));break;
case"d":$retval=bcdiv($diff,(60*60*24));break;
case"h":$retval=bcdiv($diff,(60*60));break;
case"n":$retval=bcdiv($diff,60);break;
case"s":$retval=$diff;break;
}
return$retval;
}
functionDateAdd($part,$number,$date)
{
$date_array=getdate(strtotime($date));
$hor=$date_array["hours"];
$min=$date_array["minutes"];
$sec=$date_array["seconds"];
$mon=$date_array["mon"];
$day=$date_array["mday"];
$yar=$date_array["year"];
switch($part)
{
case"y":$yar+=$number;break;
case"q":$mon+=($number*3);break;
case"m":$mon+=$number;break;
case"w":$day+=($number*7);break;
case"d":$day+=$number;break;
case"h":$hor+=$number;break;
case"n":$min+=$number;break;
case"s":$sec+=$number;break;
}
returndate("Y-m-dH:i:s",mktime($hor,$min,$sec,$mon,$day,$yar));
}
FunctionDateAdd($part,$n,$date)
{
switch($part)
{
case"y":$val=date("Y-m-dH:i:s",strtotime($date."+$nyear"));break;
case"m":$val=date("Y-m-dH:i:s",strtotime($date."+$nmonth"));break;
case"w":$val=date("Y-m-dH:i:s",strtotime($date."+$nweek"));break;
case"d":$val=date("Y-m-dH:i:s",strtotime($date."+$nday"));break;
case"h":$val=date("Y-m-dH:i:s",strtotime($date."+$nhour"));break;
case"n":$val=date("Y-m-dH:i:s",strtotime($date."+$nminute"));break;
case"s":$val=date("Y-m-dH:i:s",strtotime($date."+$nsecond"));break;
}
return$val;
}