php 計算兩個日期這間的間隔天數_PHP教程

來源:互聯網
上載者:User
本文章來給各位同學詳細介紹關於php 計算兩個日期這間的間隔天數執行個體,各位同學可參考,我們一般是把日期用strtotime轉換,然後再進行算,這樣可以精確到時分秒去哦。


例1

直接把日期轉換

代碼如下 複製代碼

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

例2

代碼如下 複製代碼

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實現兩個日期間隔的年、月、周、日數的計算

代碼如下 複製代碼
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'));
?>

http://www.bkjia.com/PHPjc/631513.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631513.htmlTechArticle本文章來給各位同學詳細介紹關於php 計算兩個日期這間的間隔天數執行個體,各位同學可參考,我們一般是把日期用strtotime轉換,然後再進行算,...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.