模拟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 相关文章推荐
php+javascript的日历控件
Nov 19 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
PHP whois查询类定义与用法示例
Apr 03 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通用防注入程序 推荐
2011/02/26 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
js实现每日签到功能
2018/11/29 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
深入浅析python 中的匿名函数
2018/05/21 Python
详解django.contirb.auth-认证
2018/07/16 Python
tensorflow的计算图总结
2020/01/12 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
python中实现栈的三种方法
2020/12/19 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
社区工作者感言
2014/03/02 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
大一新生期末自我评价
2014/09/12 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
小学生教师节广播稿
2015/08/19 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server