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 相关文章推荐
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
php比较相似字符串的方法
Jun 05 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
php简单统计中文个数的方法
Sep 30 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
php中请求url的五种方法总结
Jul 13 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
人族 Terran 基本策略
2020/03/14 星际争霸
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
python3实现逐字输出的方法
2019/01/23 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
自荐信格式范文
2013/10/07 职场文书
传播学专业毕业生自荐信
2013/11/04 职场文书
说明书格式及范文
2014/05/07 职场文书
小学教师培训方案
2014/06/09 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
Python中文纠错的简单实现
2021/07/07 Python
JavaScript获取URL参数的方法分享
2022/04/07 Javascript