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


Posted in PHP onOctober 09, 2006

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

PHP 相关文章推荐
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
PHP实现用户登录的案例代码
May 10 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
PHP convert_cyr_string()函数讲解
Feb 13 PHP
PHP7 foreach() 函数修改
Mar 09 PHP
PHP实现的功能是显示8条基色色带
Oct 09 #PHP
提升PHP执行速度全攻略(上)
Oct 09 #PHP
提升PHP执行速度全攻略(下)
Oct 09 #PHP
如何过滤高亮显示非法字符
Oct 09 #PHP
无限级别菜单的实现
Oct 09 #PHP
综合图片计数器
Oct 09 #PHP
php,不用COM,生成excel文件
Oct 09 #PHP
You might like
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
python通过加号运算符操作列表的方法
2015/07/28 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python 连续不等式语法糖实例
2020/04/15 Python
python如何调用字典的key
2020/05/25 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
计算机相关的自我评价
2014/01/15 职场文书
关于读书的演讲稿
2014/05/07 职场文书
申论倡议书范文
2014/05/13 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
司机工作自我鉴定
2014/09/19 职场文书
个人四风对照检查材料
2014/09/26 职场文书
小学生教师节广播稿
2015/08/19 职场文书