模拟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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
php读取3389的脚本
May 06 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
Laravel框架FormRequest中重写错误处理的方法
Feb 18 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 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
咖啡语言
2021/03/03 咖啡文化
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
jQuery基础框架浅入剖析
2012/12/27 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python实现C4.5决策树算法
2018/08/29 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
tensorflow 环境变量设置方式
2020/02/06 Python
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
工程业务员岗位职责
2013/12/31 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
小学校长汇报材料
2014/08/20 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
大学生村官个人总结
2015/02/15 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
创业计划书之酒厂
2019/10/14 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
python实现腾讯滑块验证码识别
2021/04/27 Python