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与SQL注入攻击[三]
Apr 17 PHP
php仿discuz分页效果代码
Oct 02 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
php强制下载类型的实现代码
Apr 21 PHP
体育彩票排列三组选三算法分享
Mar 07 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
PHP的Socket网络编程入门指引
Aug 11 PHP
php简单获取复选框值的方法
May 11 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
简单的php购物车代码
Jun 05 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
Terran热键控制
2020/03/14 星际争霸
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
python爬取51job中hr的邮箱
2016/05/14 Python
Python发展简史 Python来历
2019/05/14 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
python实现图片插入文字
2019/11/26 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
pyqt5中动画的使用详解
2020/04/01 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
公司合作协议书范本
2014/04/18 职场文书
班长竞选演讲稿
2014/04/24 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
初级党校心得体会
2014/09/11 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
python实现高效的遗传算法
2021/04/07 Python
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js