模拟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 02 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
常见的PHP五种设计模式小结
Mar 23 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
Yii配置文件用法详解
Dec 04 PHP
php 实现进制相互转换
Apr 07 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
Zerg建筑一览
2020/03/14 星际争霸
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
js实现搜索栏效果
2018/11/16 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python读取Excel表格文件的方法
2019/09/02 Python
NumPy中的维度Axis详解
2019/11/26 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python Merge函数原理及用法解析
2020/09/16 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
幼儿园元旦亲子活动方案
2014/02/17 职场文书
食品安全承诺书
2014/05/22 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014年党建工作总结
2014/11/11 职场文书
焦裕禄观后感
2015/06/03 职场文书
公司周年庆寄语
2019/06/21 职场文书