模拟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 已经成熟
Dec 04 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
解析php入库和出库
Jun 25 PHP
php生成年月日下载列表的方法
Apr 24 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
Jun 19 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
PDO::quote讲解
Jan 29 PHP
在laravel中使用with实现动态添加where条件
Oct 10 PHP
Laravel框架自定义分页样式操作示例
Jan 26 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调试函数和日志记录函数分享
2015/01/31 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
Javascript Object.extend
2010/05/18 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
浅谈js原生拖放
2016/11/21 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python的Django框架中的数据过滤功能
2015/07/17 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
青春无悔演讲稿
2014/05/08 职场文书
本科毕业生自荐信
2014/06/02 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
销售辞职信范文
2015/03/02 职场文书
教育读书笔记
2015/07/02 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android