php实现的DateDiff和DateAdd时间函数代码分享

扩展php中的时间函数DateDiff和DateAdd

function DateDiff($part, $begin, $end)
{
$diff = strtotime($end) - strtotime($begin);
switch($part)
{
case "y": $retval = bcdiv($diff, (60 * 60 * 24 * 365)); break;
case "m": $retval = bcdiv($diff, (60 * 60 * 24 * 30)); break;
case "w": $retval = bcdiv($diff, (60 * 60 * 24 * 7)); break;
case "d": $retval = bcdiv($diff, (60 * 60 * 24)); break;
case "h": $retval = bcdiv($diff, (60 * 60)); break;
case "n": $retval = bcdiv($diff, 60); break;
case "s": $retval = $diff; break;
}
return $retval;
}

function DateAdd($part, $number, $date)
{
$date_array = getdate(strtotime($date));
$hor = $date_array["hours"];
$min = $date_array["minutes"];
$sec = $date_array["seconds"];
$mon = $date_array["mon"];
$day = $date_array["mday"];
$yar = $date_array["year"];
switch($part)
{
case "y": $yar += $number; break;
case "q": $mon += ($number * 3); break;
case "m": $mon += $number; break;
case "w": $day += ($number * 7); break;
case "d": $day += $number; break;
case "h": $hor += $number; break;
case "n": $min += $number; break;
case "s": $sec += $number; break;
}
return date("Y-m-d H:i:s", mktime($hor, $min, $sec, $mon, $day, $yar));
}

Function DateAdd($part, $n, $date)
{
switch($part)
{
case "y": $val = date("Y-m-d H:i:s", strtotime($date ." +$n year")); break;
case "m": $val = date("Y-m-d H:i:s", strtotime($date ." +$n month")); break;
case "w": $val = date("Y-m-d H:i:s", strtotime($date ." +$n week")); break;
case "d": $val = date("Y-m-d H:i:s", strtotime($date ." +$n day")); break;
case "h": $val = date("Y-m-d H:i:s", strtotime($date ." +$n hour")); break;
case "n": $val = date("Y-m-d H:i:s", strtotime($date ." +$n minute")); break;
case "s": $val = date("Y-m-d H:i:s", strtotime($date ." +$n second")); break;
}
return $val;
}
(0)

相关推荐

  • PHP与Java对比学习日期时间函数

    废话少说先来看PHP中 date():格式化一个本地时间或者日期,当前时间 2016年5月13日 15:19:49 使用函数date(),输出当前是月份中的第几天,参数:String类型 d 例如:echo date("d"); 输出 13 使用函数date(),输出当前是星期中的第几天,参数:String类型 D或者 N 例如: echo date("D"); 输出 Fri echo date("N"); 输出 5 echo date(&quo

  • php时间戳格式化显示友好的时间函数分享

    在项目中时间一律显示为2014-10-20 10:22显得很呆板.在微博.QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式.那么用php怎么实现呢? 大体思路如下: 如果是跨年并且大于3天就显示为具体的时间 如果是今天的           如果是一分钟内则显示几秒之前           如果是一小时内则显示几分钟前           如果是当天且大于一小时则显示为几小时前 如果是昨天则显示为昨天几点 如果是前天则显示为前天几点 如果大于三天(没

  • php date()日期时间函数详解

    1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo date('y-n-j'); 07-2-6 大写Y表示年四位数字,而小写y表示年的两位数字: 小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字. echo date('Y-M-j'); 2007-Feb-6 echo date('Y-m-d'); 2007-02-06 大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0); 没有大写的J,只有小写j表示月份的日期,无前导o:若需要月

  • php时间函数用法分析

    本文实例讲述了php时间函数用法.分享给大家供大家参考,具体如下: php中有unix时间戳的 相关操作函数,使用很方便 time() 返回当前的 Unix 时间戳 microtime -- 返回当前 Unix 时间戳和微秒数 例 1. 用 microtime() 对脚本的运行计时 <?php /** * Simple function to replicate PHP 5 behaviour */ function microtime_float() { list($usec, $sec) =

  • 使用PHP的日期与时间函数技巧

    PHP的日期时间函数date() 1,年-月-日 复制代码 代码如下: echo date('Y-m-j'); 2007-02-6 echo date('y-n-j'); 07-2-6 大写Y表示年四位数字,而小写y表示年的两位数字: 小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字. 复制代码 代码如下: echo date('Y-M-j'); 2007-Feb-6 echo date('Y-m-d'); 2007-02-06 大写M表示月份的3个缩写字符,而小写m则表示月份的

  • PHP 日期时间函数的高级应用技巧

    PHP的日期时间函数date() 1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo date('y-n-j'); 07-2-6 大写Y表示年四位数字,而小写y表示年的两位数字: 小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字. echo date('Y-M-j'); 2007-Feb-6 echo date('Y-m-d'); 2007-02-06 大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0); 没有大写的J,只有小写j

  • PHP日期时间函数的高级应用技巧

    checkdate($month,$date,$year) 如果应用的值构成一个有效日期,则该函数返回为真.例如,对于错误日期2005年2月31日,此函数返回为假. 在日期用于计算或保存在数据库中之前,可用此函数检查日期并使日期生效. <?php// returns falseecho checkdate(2,30,2005) ? "valid" : "invalid";// returns trueecho checkdate(4,6,2010) ? &qu

  • PHP 常用时间函数资料整理

    php常用的时间函数 测试环境:php5.3.29 unix时间戳(从Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数.).以下简称时间戳. 返回某一时间的时间戳. time(); 获取当前本机时间的时间戳. mktime(时,分,秒,月,日,年); //从右向左可以省略,省略到的参数用本机时间替换,比如省略了最后日和年就应用当前时间 22日 2016年. //年可写两位或四位数字.两位时0-69 对应于 2000-2069,70-100 对应于 1970

  • php Mysql日期和时间函数集合

    收集的比较全的Mysql日期和mysql时间函数DATE_FORMAT(date,format)  根据format字符串格式化date值.下列修饰符可以被用在format字符串中: %M 月名字(January--December)  %W 星期名字(Sunday--Saturday)  %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等.)  %Y 年, 数字, 4 位  %y 年, 数字, 2 位  %a 缩写的星期名字(Sun--Sat)  %d 月份中的天数, 数字(00

  • PHP函数之日期时间函数date()使用详解

    日期时间函数是PHP 的核心组成部分.无需安装即可使用这些函数.下面来详细说说date函数的具体用法: PHP Date() 函数PHP Date() 函数可把时间戳格式化为可读性更好的日期和时间. 语法date(format,timestamp) format 必需.规定时间戳的格式.timestamp 可选.规定时间戳.默认是当前的日期和时间. PHP的日期时间函数date() 复制代码 代码如下: $t=time();echo date("Y-m-d H:i:s",$t); 第一

  • php checkdate、getdate等日期时间函数操作详解

    checkdate($month,$date,$year) 如果应用的值构成一个有效日期,则该函数返回为真.例如,对于错误日期2005年2月31日,此函数返回为假. 在日期用于计算或保存在数据库中之前,可用此函数检查日期并使日期生效. 复制代码 代码如下: <?php // returns false echo checkdate(2,30,2005) ? "valid" : "invalid"; // returns true echo checkdate(

  • php实现求相对时间函数

    本文实例讲述了php实现求相对时间函数.分享给大家供大家参考.具体实现方法如下: <?php function relativeTime($time = false, $limit = 86400, $format = 'g:i A M jS') { if (empty($time) || (!is_string($time) & amp; & amp; !is_numeric($time))) $time = time(); elseif (is_string($time)) $t

随机推荐