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

<?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;
}
?>

时间: 2024-11-03 09:16:20

模拟SQLSERVER的两个函数:dateadd(),datediff()的相关文章

date.inc.php3,模拟SQLSERVER的两个函数:dateadd(),datediff()

server|sqlserver|函数 //文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型.//如://$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数*******$part    类型:string        取值范围:year,month,day,hour,min,se

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

<?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 类型:数值

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

//在PHP中处理日期非常不方便,比如求两个日期之间相差的月份?该怎么办呢? //文件名:date.inc.php3 //在使用这两个函数前,要先将日期或日期时间转换成timestamp类型. //如: //$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数******* $part 类型:string 取值范围:year,month,da

如何模拟SQLServer的两个日期处理函数

//在PHP中处理日期非常不方便,比如求两个日期之间相差的月份?该怎么办呢? //文件名:date.inc.php3 //在使用这两个函数前,要先将日期或日期时间转换成timestamp类型. //如: //$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数******* $part 类型:string 取值范围:year,month,da

SqlServer 常用内置函数及用法

  SqlServer 常用内置函数及用法 select cast('2012/02/03' as datetime); select convert(varchar(10),GETDATE(),120);--转换成日期类型 select CASE WHEN ID =1 THEN 'A0' ELSE 'TT' END from demo1;--case when select len('ssa爱迪生') --返回6 长度 select left('seaa',2) --se从左边起前两个字符 s

SQLServer中利用NTILE函数对数据进行分组的一点使用

原文:SQLServer中利用NTILE函数对数据进行分组的一点使用 本文出处:http://www.cnblogs.com/wy123/p/6908377.html    NTILE函数可以按照指定的排序规则,对数据按照指定的组数(M个对象,按照某种排序分N个组)进行分组,可以展现出某一条数据被分配在哪个组中. 不仅可以单单利用这个特性,还可以借助该特实现更加有意思的功能. NTILE的基本使用 NTILE的作用是对数据进行整体上的分组,比如有60个学生,按照成绩分成"上中下"三个级

Sqlserver常用的时间函数---GETDATE、GETUTCDATE、DATENAME

server|sqlserver|函数 Sqlserver常用的时间函数---GETDATE.GETUTCDATE.DATENAME Sqlserver常用的时间函数---GETDATE.GETUTCDATE.DATENAME作者:淘特网 日期: 2005-4-12 15:53:24 访问次数:出处:淘特网--http://www.tot.name 显示选项: 自动滚屏[左键停止]GETDATE按 datetime 值的 Microsoft SQL Server 标准内部格式返回当前系统日期和时

js日期相关函数dateAdd,dateDiff,dateFormat等介绍_javascript技巧

Js获取当前日期时间及其它操作 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) myDate.getTime(); //获

javascript-js点击某一个链接交替执行两个函数(js实现网页全屏问题)

问题描述 js点击某一个链接交替执行两个函数(js实现网页全屏问题) 想实现的需求:1.网页上有个"全屏显示"按钮(链接),点击全屏后执行函数fullScreen(),然后"显示全屏"二字变成"退出全屏":2.点击"退出全屏"执行函数exitFullScreen(),然后"退出全屏"变为"全屏显示" function fullScreen() { var el = document.do