admin

[经典代码] PHP 比较两个时间相差天数小时分钟秒

function DateDiff($date1, $date2, $unit = "") { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天 
    switch ($unit) { 
        case 's': 
            $dividend = 1; 
            break; 
        case 'i': 
            $dividend = 60; //oSPHP.COM.CN 
            break; 
        case 'h': 
            $dividend = 3600; 
            break; 
        case 'd': 
            $dividend = 86400; 
            break; //开源OSPhP.COM.CN 
        default: 
            $dividend = 86400; 
    } 
    $time1 = strtotime($date1); 
    $time2 = strtotime($date2); 
    if ($time1 && $time2) 
        return (float)($time1 - $time2) / $dividend; 
    return false; 
} 

用php判断给定两日期大小相差多天:

    计算方法不只下面介绍的这些,只是一些比较常规的方法:

    如要计算2009-12-09和2009-12-05相差多少天:

    <?php

    $startdate=strtotime(“2009-12-09”);

    $enddate=strtotime(“2009-12-05”);

    上面的php时间日期函数strtotime已经把字符串日期变成了时间戳,这样只要让两数值相减,然后把秒变成天就可以了,比较的简单,如下:

    $days=round(($enddate-$startdate)/3600/24) ;

    echo $days; //days为得到的天数;

    ?>

    下面介绍另外一种方法:

    上面判断的是两个日期的大小,下面则是判断生日的程序代码,得到的$n就是相距生日的天数.

    $birthday=“生日”;

    $birthday = preg_replace('/\d+/', Date('Y'), $birthday, 1);

    $d = 60*60*24;

    $n= floor((strtotime($birthday)-time())/$d);

    $n=$n+1;

    还有如果相比的是现在的时间,就可以用time()函数,得到的就是现在的时间戳.

    第二种情况呢,就是有数据库,这样就相对比较容易一些了!如果是MSSQL可以使用触发器!用专门计算日期差的函数datediff()计算便可!

    如果是MYSQL那就用两个日期字段的时间戳值,进行计算后便可得到相差的天数了.方法和上面的代码很像.


#1楼
发帖时间:2015-7-25   |   查看数:0   |   回复数:0
游客组