模拟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 相关文章推荐
我常用的几个类
Oct 09 PHP
PHP一些有意思的小区别
Dec 06 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
php实现aes加密类分享
Feb 16 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
PHP MSSQL 分页实例
Apr 13 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
PHP带节点操作的无限分类实现方法详解
Nov 09 PHP
PHP常量及变量区别原理详解
Aug 14 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的urlencode()URL编码函数浅析
2011/08/09 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
jquery 常用操作方法
2010/01/28 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
推荐11个实用Python库
2015/01/23 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python字典DICT类型合并详解
2017/08/17 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
python属于跨平台语言码
2020/06/09 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
德国网上宠物店:Zoobio
2018/05/23 全球购物
幼儿园校车司机的岗位职责
2014/01/30 职场文书
商场父亲节活动方案
2014/08/27 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
交心谈心活动总结
2015/05/11 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers