Home > Article > Backend Development > PHP calculates the number of days between two dates_PHP Tutorial
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 | ||||||||
$date1 = strtotime($date1); $date2 = strtotime($date2);
|
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')); ?> |