模拟SQLSERVER的两个函数:dateadd(),datediff()
author:一佰互联 2019-05-01   click:171
<?php//文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。//如://$today=mktime(0,0,0,date("m"),date("d"),date("Y"));/****模拟sqlserver中的dateadd函数*******$part 类型:string取值范围:year,month,day,hour,min,sec表示:要增加的日期的哪个部分$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=0;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取值范围:year,month,day,hour,min,sec表示:要增加的日期的哪个部分$date1,$date2 类型:timestamp表示:要比较的两个日期返回 类型:数值**************结束*(*************/function datediff($part,$date1,$date2){//$diff=$date2-$date1;$year1=date("Y",$date1);$year2=date("Y",$date2);$month2=date("m",$date2);$month1=date("m",$date1);$day2=date("d",$date2);$day1=date("d",$date1);$hour2=date("d",$date2);$hour1=date("d",$date1);$min2=date("i",$date2);$min1=date("i",$date1);$sec2=date("s",$date2);$sec1=date("s",$date1);$part=strtolower($part);$ret=0;switch ($part) {case "year":$ret=$year2-$year1;break;case "month":$ret=($year2-$year1)*12+$month2-$month1;break;case "day":$ret=(mktime(0,0,0,$month2,$day2,$year2)-mktime(0,0,0,$month1,$day1,$year1))/(3600*24);break;case "hour":$ret=(mktime($hour2,0,0,$month2,$day2,$year2)-mktime($hour1,0,0,$month1,$day1,$year1))/3600;break;case "min":$ret=(mktime($hour2,$min2,0,$month2,$day2,$year2)-mktime($hour1,$min1,0,$month1,$day1,$year1))/60;break;case "sec":$ret=$date2-$date1;break;default:return $ret;break;}return $ret;}?>