电脑技术学习

PHP模拟SQL Server的两个日期处理函数

dn001
  //在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;;
};

};
;

标签: 函数