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自动加载的两种实现方法
Jun 21 PHP
linux iconv方法的使用
Oct 01 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
PHP统计目录大小的自定义函数分享
Nov 18 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
jQuery ready函数滥用分析
2011/02/16 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
Python  连接字符串(join %)
2008/09/06 Python
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
用Python解数独的方法示例
2019/10/24 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
如何理解transaction事务的概念
2015/05/27 面试题
会计学个人自荐信模板
2013/12/13 职场文书
教师教学评估方案
2014/05/09 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
党员个人整改措施
2014/10/24 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
Pygame Draw绘图函数的具体使用
2021/11/17 Python
python开发制作好看的时钟效果
2022/05/02 Python