好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php 计算两个日期之间的间隔天数 - php日期

php 计算两个日期之间的间隔天数

本文章来给各位同学详细介绍关于php 计算两个日期这间的间隔天数实例,各位同学可参考,我们一般是把日期用strtotime转换,然后再进行算,这样可以精确到时分秒。

例1,直接把日期转换,代码如下:

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

例2,代码如下:

<?php  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 天' ;  ?> 

例3,PHP实现两个日期间隔的年、月、周、日数的计算, 代码如下:

<?php       function  format( $a , $b ){           //检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大            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){                 //如果小于7天直接返回天数                $result [ 'daily' ] =  $extend ;          } elseif ( $extend <=31){         //小于28天则返回周数,由于闰年2月满足了                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 =     floor ( $extend /365);               if ( $y >=1){                 //如果超过一年                    $start  =  strtotime ( $a . '+' . $y . 'year' );                   $a      =  date ( 'Y-m-d' , $start );                   //判断是否真的已经有了一年了,如果没有的话就开减                    if ( $start > $stop ){                       $a  =  date ( 'Y-m-d' , strtotime ( $a . '-1 month' ));                       $m  =11;                       $y --;                      }                   $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' ));  ?>

查看更多关于php 计算两个日期之间的间隔天数 - php日期的详细内容...

  阅读:90次