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日期的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29244