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 相关文章推荐
使用 MySQL 开始 PHP 会话
Dec 21 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
php实现源代码加密的方法
Jul 11 PHP
非常实用的php验证码类
May 15 PHP
php自定义函数转换html标签示例
Sep 29 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 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分页效率终结版(推荐)
2013/07/01 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
如何运行Python程序的方法
2013/04/21 Python
Python模块搜索路径代码详解
2018/01/29 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
Linux中如何用命令创建目录
2016/12/02 面试题
大学生应聘自荐信
2013/10/11 职场文书
英语演讲开场白
2015/05/29 职场文书
北京爱情故事观后感
2015/06/12 职场文书
机器人瓦力观后感
2015/06/12 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript