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 数组实例说明
Aug 18 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP url 加密解密函数代码
Aug 26 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php实现TCP端口检测的方法
Apr 01 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 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实现远程下载文件到本地
2015/05/17 PHP
微信支付开发告警通知实例
2016/07/12 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
基于jQuery Ajax实现下拉框无刷新联动
2017/12/06 jQuery
详解JS数值Number类型
2018/02/07 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
python xpath获取页面注释的方法
2019/01/14 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
玩手机检讨书1000字
2014/10/20 职场文书
颐和园的导游词
2015/01/30 职场文书
道歉信怎么写
2015/05/12 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
母亲节主题班会
2015/08/14 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
python读取mnist数据集方法案例详解
2021/09/04 Python
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS