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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
PHP 第三节 变量介绍
Apr 28 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
php读取本地json文件的实例
Mar 07 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
浅谈php调用python文件
Mar 29 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
一个php导出oracle库的php代码
2009/04/20 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
vue实现简单加法计算器
2020/10/22 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python解析json代码实例解析
2019/11/25 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
家长会学生家长演讲稿
2013/12/29 职场文书
手机被没收检讨书
2014/02/22 职场文书
就业协议书的作用
2014/04/11 职场文书
淘宝活动总结范文
2014/06/26 职场文书
小学生民族团结演讲稿
2014/08/27 职场文书
死者家属慰问信
2015/03/24 职场文书