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

飞天名媛

飞天名媛

2016-01-29 15:00

PHP模拟SQL Server的两个日期处理函数,PHP模拟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; 



 
 
展开更多 50%)
分享

猜你喜欢

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

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

sql server日期时间函数

编程语言 网络编程
sql server日期时间函数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

模拟SQLSERVER的两个函数:dateadd(),datediff()

PHP
模拟SQLSERVER的两个函数:dateadd(),datediff()

用JavaScript 处理 URL 的两个函数代码

Web开发
用JavaScript 处理 URL 的两个函数代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

两个sql server 2000的通用分页存储过程

SQLServer
两个sql server 2000的通用分页存储过程

SQL Server日期计算

SQLServer
SQL Server日期计算

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《勇者前线》副本战斗中的八大技巧分享

《勇者前线》副本战斗中的八大技巧分享

一个阿拉伯数字转中文数字的函数

一个阿拉伯数字转中文数字的函数
下拉加载更多内容 ↓