Heim > Backend-Entwicklung > PHP-Tutorial > 如何模拟SQL Server的两个日期处理函数_PHP

如何模拟SQL Server的两个日期处理函数_PHP

WBOY
Freigeben: 2016-06-01 12:30:53
Original
752 Leute haben es durchsucht

SQL Server

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

}
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage