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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
PHP正则表达式笔记与实例详解
May 09 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
Laravel框架源码解析之反射的使用详解
May 14 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代码收集表单内容并写入文件的代码
2012/01/29 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
使用Sphinx对索引进行搜索
2013/06/25 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
jquery获取当前点击对象的value方法
2014/02/28 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
在Python的循环体中使用else语句的方法
2015/03/30 Python
python getopt详解及简单实例
2016/12/30 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
PyTorch基本数据类型(一)
2019/05/22 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
python opencv实现简易画图板
2020/08/27 Python
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
2015年中秋放假通知范文
2015/08/18 职场文书
Python中的变量与常量
2021/11/11 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python