//在PHP中处理日期非常不方便比如求两个日期之间相差的月份?该怎么办呢?
//文件名dateincphp
//在使用这两个函数前要先将日期或日期时间转换成timestamp类型
//如
//$today=mktime(date(m)date(d)date(Y));
/****模拟sqlserver中的dateadd函数*******
$part 类型string
取值范围yearmonthdayhourminsec
表示要增加的日期的哪个部分
$n 类型数值
表示要增加多少根据$part决定增加哪个部分
可为负数
$datetime类型timestamp
表示增加的基数
返回 类型timestamp
**************结束**************/
function dateadd($part$n$datetime){
$year=date(Y$datetime);
$month=date(m$datetime);
$day=date(d$datetime);
$hour=date(H$datetime);
$min=date(i$datetime);
$sec=date(s$datetime);
$part=strtolower($part);
$ret=;
switch ($part) {
case year:
$year+=$n;
break;
case month:
$month+=$n;
break;
case day:
$day+=$n;
break;
case hour:
$hour+=$n;
break;
case min:
$min+=$n;
break;
case sec:
$sec+=$n;
break;
default:
return $ret;
break;
}
$ret=mktime($hour$min$sec$month$day$year);
return $ret;
}
/****模拟sqlserver中的datediff函数*******
$part 类型string
取值范围yearmonthdayhourminsec
表示要增加的日期的哪个部分
$date$date 类型timestamp
表示要比较的两个日期
返回 类型数值
**************结束*(*************/
function datediff($part$date$date){
//$diff=$date$date;
$year=date(Y$date);
$year=date(Y$date);
$month=date(m$date);
$month=date(m$date);
$day=date(d$date);
$day=date(d$date);
$hour=date(d$date);
$hour=date(d$date);
$min=date(i$date);
$min=date(i$date);
$sec=date(s$date);
$sec=date(s$date);
$part=strtolower($part);
$ret=;
switch ($part) {
case year:
$ret=$year$year;
break;
case month:
$ret=($year$year)*+$month$month;
break;
case day:
$ret=(mktime($month$day$year)mktime($month$day$year))/(*);
break;
case hour:
$ret=(mktime($hour$month$day$year)mktime($hour$month$day$year))/;
break;
case min:
$ret=(mktime($hour$min$month$day$year)mktime($hour$min$month$day$year))/;
break;
case sec:
$ret=$date$date;
break;
default:
return $ret;
break;
}
return $ret;
}
}