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 相关文章推荐
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
使用PHP编写的SVN类
Jul 18 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
PHP的几个常用加密函数
Feb 03 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
再谈Yii Framework框架中的事件event原理与应用
Apr 07 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
实用函数8
2007/11/08 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
解析php中反射的应用
2013/06/18 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
Javasipt:操作radio标签详解
2013/12/30 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
浅谈Angular路由守卫
2017/08/26 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
python字符串的index和find的区别详解
2020/06/20 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
大学新生军训感言
2014/02/25 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
研讨会主持词
2014/04/02 职场文书
关于安全的演讲稿
2014/05/09 职场文书
老龄工作先进事迹
2014/08/15 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
入党函调证明材料
2014/12/24 职场文书
个人年终总结范文
2015/03/09 职场文书
新课程改革心得体会
2016/01/22 职场文书
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫