PHP模拟SQL Server的两个日期处理函数_php基础

//在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; 

时间: 2024-12-20 21:36:23

PHP模拟SQL Server的两个日期处理函数_php基础的相关文章

PHP模拟SQL Server的两个日期处理函数

server|函数 //在PHP中处理日期非常不方便,比如求两个日期之间相差的月份?该怎么办呢? //文件名:date.inc.php3 //在使用这两个函数前,要先将日期或日期时间转换成timestamp类型. //如: //$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数******* $part 类型:string 取值范围:yea

MS SQL Server中的 CONVERT 日期时间 格式化大全

出处:http://www.cnblogs.com/fernando/archive/2008/04/29/1176581.html  CONVERT 将某种数据类型的表达式显式转换为另一种数据类型.由于某些需求经常用到取日期格式的不同.现以下可在SQL Server中 将日期格式化. SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式. 在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值. 给 style 值加 100,可

sql server动态存储过程按日期保存数据示例

在项目中经常有大量数据信息保存到数据库,如只用一张表保存那肯定不现实,首选解决方案为按日期建立动态表来保存数据.在不改变保存方式的代码的情况下,用动态存储过程是首选,在sql server存储过程中进行日期计算,按日期建表效率最高,下面就公司项目的部分动态存储过程粘贴出来: -----sql语句: ALTER proc [dbo].[EventInsert] @chrTagData varchar(50), --编号 @intEData int, @chrJZData varchar(50),

利用ASP嵌套JS+SQL Server打造两级连动下拉框(一)

js|server|下拉 利用ASP嵌套JS+SQL Server打造两级连动下拉框(1)   随着网络技术的迅速发展,越来越多的电子商务网站也应运而生.而在构建一个功能强大的电子商务网站往往少不了提供网上注册功能给客户自行注册这个模块,为了尽可能方便客户填写信息,我们经常要用到下拉框供客户选择,特别是两级连动下拉框最为常用. 再说,本人今日发现CSDN论坛上也经常有网友提问这个问题,就是,需要一个两级连动下拉框,第一个显示省份名称,第二个显示相应的城市名.为了解答这个问题,我特别写这篇文章,希

利用ASP嵌套JS+SQL Server打造两级连动下拉框(二)

js|server|下拉 利用ASP嵌套JS+SQL Server打造两级连动下拉框(2) TwoLevel.asp<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"

怎样写SQL语句取两个日期之间的年月作为列名,两个日期是变量的

问题描述 怎样写SQL语句取两个日期之间的年月作为列名,两个日期是变量的比如 我取2000-01 到2011-12之间的年月在 test表里 id name1张山2张三3李四弄成这样id name 2000-01 2000-01 2000-01 2000-01 2000-01~~~2011-06 1张山NULLNULLNULLNULLNULL NULL2张三NULLNULLNULLNULLNULL NULL3李四NULLNULLNULLNULLNULL NULL我用这种方法写,不过它报错.dec

SQL Server对比两字段的相似度(函数算法)

原文:SQL Server对比两字段的相似度(函数算法) 相似度函数 概述    比较两个字段的相似度    最近有人问到关于两个字段求相似度的函数,所以就写了一篇关于相似度的函数,分别是"简单的模糊匹配","顺序匹配","一对一位置匹配".在平时的这种函数可能会需要用到,可能业务需求不一样,这里只给出参照,实际情况可以相对修改. 本文所有的两个字段比较都是除以比较字段本身,例如A与B比较,找出的长度除以A的长度,因为考虑如果A的长度大于B的长度

c#连接SQL Server的两种代码

#连接SQL Server的两种代码 连接字符串: <connectionStrings> <add name="conn" connectionString="user id=sa;Password=;initial catalog=Northwind;Server=YourSQLServer;Connect Timeout=30;" providerName="System.Data.SqlClient" /> <

Sql Server来龙去脉系列 必须知道的权限控制基础篇

原文:Sql Server来龙去脉系列 必须知道的权限控制基础篇     题外话:最近看到各种吐槽.NET怎么落寞..NET怎么不行了..NET工资低的帖子.我也吐槽一句:一个程序猿的自身价值不是由他选择了哪一门技术来决定,而是由他自身能创造出什么价值来决定.     在进入本篇内容之前,这里有几个问题:     1.一般程序猿都知道怎样创建.修改.登录账号,但知不知道登陆账号存储在哪个表或者视图?     2.数据库中其实存在登录账号和用户两个概念,你能解释清楚这两个概念吗?     3.对于