模拟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 is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php单文件版在线代码编辑器
Mar 12 PHP
php计算整个目录大小的方法
Jun 01 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
php代码架构的八点注意事项
Jan 25 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
Laravel日志用法详解
Oct 09 PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 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
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
javascript引导程序
2008/10/26 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python使用Scrapy爬取妹子图
2015/05/28 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
创建学习型党组织实施方案
2014/03/29 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
小学领导班子对照材料
2014/08/23 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书