Home  >  Article  >  Backend Development  >  PHP calculates the number of days between two dates_PHP Tutorial

PHP calculates the number of days between two dates_PHP Tutorial

WBOY
WBOYOriginal
2016-07-13 16:57:441962browse

This article will give students a detailed introduction to the example of calculating the number of days between two dates in PHP. Students can refer to it. We usually convert the date with strtotime and then calculate it, so that it can be accurate to hours, minutes and seconds. oh.


Example 1

Convert date directly

The code is as follows Copy code
 代码如下 复制代码

function daysbetweendates($date1, $date2){
    $date1 = strtotime($date1);
    $date2 = strtotime($date2);
    $days = ceil(abs($date1 - $date2)/86400);
    return $days;
}

function daysbetweendates($date1, $date2){

$date1 = strtotime($date1);

$date2 = strtotime($date2);
 代码如下 复制代码

functionmaketime($date)
{
list($year,$month,$day) = explode('-',$date);
returnmktime(0,0,0,$month,$day,$year);
}
$date1 = '2007-01-08';
$date2 = '2007-03-01';
$d = (maketime($date2) - maketime($date1)) / (3600*24);
echo'相差$d 天';

?>

$days = ceil(abs($date1 - $date2)/86400); Return $days; }
Example 2
The code is as follows Copy code
functionmaketime($date)<🎜> {<🎜> list($year,$month,$day) = explode('-',$date);<🎜> returnmktime(0,0,0,$month,$day,$year);<🎜> }<🎜> $date1 = '2007-01-08';<🎜> $date2 = '2007-03-01';<🎜> $d = (maketime($date2) - maketime($date1)) / (3600*24);<🎜> echo'The difference is $d days';<🎜> <🎜>?>


Example 3

PHP implements calculation of year, month, week and day between two dates

The code is as follows Copy code
Function format($a,$b){
                  //Check the size of two dates, the default is the smaller in the front and the larger in the back, if the front is larger and the back is smaller, swap the positions to ensure the front is small and the bottom is large
If(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);
          $start = strtotime($a);
$stop = strtotime($b);
          $extend = ($stop-$start)/86400;
         $result['extends'] = $extend;
             if($extend<7){                                                                                                                                                                                                                                                                                                   $result['daily'] = $extend;
} Elseif ($ extend & lt; = 31) {// Back a weekly number of returns in less than 28 days. Because the leap year meets
If($stop==strtotime($a.'+1 month')){
                   $result['monthly'] = 1;
               }else{
                     $w = floor($extend/7);
$d = ($stop-strtotime($a.'+'.$w.' week'))/86400;
                   $result['weekly'] = $w;
                   $result['daily'] = $d;
            }
         }else{
                                                                                                                      $y=                  if($y>=1){                                                                                                                                                                                                                                                                                   $start = strtotime($a.'+'.$y.'year');
$ A = date ('y-m-d', $ start);
                            // Determine whether it has really been a year, if not, then reduce it
If($start>$stop){
                            $a = date('Y-m-d',strtotime($a.'-1 month'));
                         $m =11;
                                                                                                                  }
                     $extend = ($stop-strtotime($a))/86400;
            }
               if(isset($m)){
                     $w = floor($extend/7);
                     $d = $extend-$w*7;
               }else{
                      $m = isset($m)?$m:round($extend/30);
$stop>=strtotime($a.'+'.$m.'month')?$m:$m--;
                if($stop>=strtotime($a.'+'.$m.'month')){
                    $d=$w=($stop-strtotime($a.'+'.$m.'month'))/86400;
                    $w = floor($w/7);
                    $d = $d-$w*7;
                }
            }
            $result['yearly']  = $y;
            $result['monthly'] = $m;
            $result['weekly']  = $w;
            $result['daily']   = isset($d)?$d:null;
        }
        return array_filter($result);
    }
 
    print_r(format('2012-10-1','2012-12-15'));
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631513.htmlTechArticle本文章来给各位同学详细介绍关于php 计算两个日期这间的间隔天数实例,各位同学可参考,我们一般是把日期用strtotime转换,然后再进行算,...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn