PHP函式運用之返回兩給定日期的天數差

davidtim發表於2021-09-11
在之前的文章中我們介紹了利用PHP函式檢查給定值是不是有限值、無限值或非數值的方法,感興趣的可以點選連結進行查閱→《》。這次我們繼續PHP函式的學習,介紹一下計算兩個日期相差幾天的方法,有需要的可以學習瞭解一下~

本文的重點內容則是教大家如何計算兩個日期之間的間隔天數。這裡給大家介紹兩種方法,大家可以自己先在本地做一做,看看實現的方法是否和我一樣呢?

首先來看第一種方法:利用strtotime()函式

實現方法:

  • 將兩個日期使用strtotime()函式轉換為時間戳;

  • 然後將兩個時間戳相減,得到時間差,但此時還是以秒為單位計數的,不利於閱讀。

  • 接著將時間除以86400(24*60*60=86400),在使用floor()向下舍入為最接近的整數即可

下面直接給出實現程式碼:

<?php
header("content-type:text/html;charset=utf-8");
function daysDiff($date1, $date2)
{
    $first = strtotime($date1);
    $second = strtotime($date2);
    if($first>$second){
    	$diff_seconds=$first-$second;
    }else{
    	$diff_seconds=$second-$first;
    }
	$time = floor(($diff_seconds)/86400);
    return $time;
}

$dt1 = '2021-8-1';
$dt2 = '2021-8-27';
echo $dt1.' 和 '. $dt2. ' 之間相差的天數是 '. daysDiff($dt1, $dt2) ."天";
?>

輸出結果:

1.png

有沒有覺得這種方法有點麻煩,下面我們介紹另一種更簡便的方法:利用date_diff() 函式

date_diff() 函式可以直接返回兩個 DateTime 物件間的差值。我們只需要將兩個指定的日期轉為DateTime 物件,然後使用date_diff(datetime1,datetime2)即可獲取間隔天數。

下面直接給出實現程式碼:

<?php
header("content-type:text/html;charset=utf-8");
function daysDiff($date1, $date2)
{
    $date1=date_create($date1);
	$date2=date_create($date2);
	$diff_seconds=date_diff($date1,$date2);


    return $diff_seconds->format("%R%a");
}

$dt1 = '2020-03-15';
$dt2 = '2021-12-12';
echo $dt1.' 和 '. $dt2. ' 之間相差的天數是 '. daysDiff($dt1, $dt2) ." 天";
?>

輸出結果:

3.png

好了就說到這裡了,有其他想知道的,可以點選這個哦。→ →

以上就是PHP函式運用之返回兩給定日期的天數差的詳細內容,更多請關注php中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2827320/,如需轉載,請註明出處,否則將追究法律責任。

相關文章