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 相关文章推荐
phpwind中的数据库操作类
Jan 02 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
Linux下php5.4启动脚本
Aug 03 PHP
ThinkPHP中order()使用方法详解
Apr 19 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
Symfony查询方法实例小结
Jun 28 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 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/06/18 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
详解vscode中vue代码颜色插件
2018/10/11 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
常用python编程模板汇总
2016/02/12 Python
Python爬取APP下载链接的实现方法
2016/09/30 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
个人自我鉴定
2013/11/07 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
个人年底工作总结
2015/03/10 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server