模拟SQLSERVER的两个函数:dateadd(),datediff()


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 相关文章推荐
在Windows版的PHP中使用ADO
Oct 09 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
PHP对文件进行加锁、解锁实例
Jan 23 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php阳历转农历优化版
Aug 08 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
php四种定界符详解
Feb 16 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
PHP实现基于状态的责任链审批模式详解
May 31 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
实时抓取YAHOO股票报价的代码
Oct 09 #PHP
php访问查询mysql数据的三种方法
Oct 09 #PHP
杏林同学录(一)
Oct 09 #PHP
杏林同学录(二)
Oct 09 #PHP
基于mysql的bbs设计(五)
Oct 09 #PHP
PHP+DBM的同学录程序(5)
Oct 09 #PHP
同时提取多条新闻中的文本一例
Oct 09 #PHP
You might like
php商品对比功能代码分享
2015/09/24 PHP
PHP文件操作详解
2016/12/30 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
Python yield 使用浅析
2015/05/28 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
如何利用python读取micaps文件详解
2020/10/18 Python
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
10条PHP编程习惯
2014/05/26 面试题
金融专业个人求职信
2013/09/22 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
社区志愿者培训方案
2014/06/10 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
初三语文教学反思
2016/03/03 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
MySQL 服务和数据库管理
2021/11/11 MySQL
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers