模拟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 静态变量与自定义常量的使用方法
Jan 26 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
php TP5框架生成二维码链接
Apr 01 PHP
PHP获取学生成绩的方法
Nov 17 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获取网卡地址的代码
2008/04/09 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
php实现计数器方法小结
2015/01/05 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
中科软测试工程师面试题
2012/06/16 面试题
国际会议邀请函范文
2014/01/16 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
讲党性心得体会
2014/09/03 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python