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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
扩展你的 PHP 之入门篇
Dec 04 PHP
php巧获服务器端信息
Dec 06 PHP
实用函数7
Nov 08 PHP
laravel5创建service provider和facade的方法详解
Jul 26 PHP
php简单压缩css样式示例
Sep 22 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
Oct 17 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 PHP
PHP实现页面静态化深入讲解
Mar 04 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
Laravel5中contracts详解
2015/03/02 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
地震发生中逃生十大法则
2008/05/12 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
js实现购物车功能
2018/06/12 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
Python的词法分析与语法分析
2013/05/18 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python批量发送post请求的实现代码
2018/05/05 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
小学教师的个人自我鉴定
2013/10/24 职场文书
社区两委对照检查材料
2014/08/23 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
2015团员个人年度总结
2015/11/24 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书