在之前的文章《怎麼通過PHP實作給定年月日計算總天數》中,我們介紹了一種給定年月日計算總天數的方法。這次我們來簡化一下方法,帶大家了解一下借助strtotime()函數怎麼計算總天數。
本文的主題是:給定一個年月日,計算截止這一天一共有多少天。
這要怎麼計算?沒有思路是不是,我們換個方向,簡化一下,不就是求 x年1月1日——x年x月x日之間隔了多少天,也就是求兩個日期的時間差。那麼怎麼求時間差呢?
我們需要先将兩個日期:x年1月1日 和 x年x月x日 轉換為 時間戳
$startdate = strtotime("{$year}-01-01");
$enddate = strtotime("{$year}-{$month}-{$day}");
然後将兩個時間戳相減(結束時間 - 起始時間)
$diff_seconds = $enddate-$startdate;
這樣就會得到兩個日期的時間差,但此時還是以秒為機關計數的,不利于閱讀。
因為一天有24小時,1小時有60分鐘,1分鐘有60秒;換算一下246060=86400,是以1天有86400秒。
将時間差$diff_seconds除以86400,在使用floor()向下舍入為最接近的整數
$time = floor(($diff_seconds)/86400);
此時擷取到的是相差天數,不包括x月x日這一天,要再加1,才是截止某年某月某日的總天數。
我們來看看完整代碼:
function GetDays($year,$month,$day){
$day = $time+1;
echo "截止{$year}-{$month}-{$day} 共有 {$day} 天
";
}
測試一下:計算截止2000-3-5的總天數(因為2000年是閏年,是以31+29+5=65)
GetDays(2000,3,5);
輸出結果為:
OK,總天數是正确的!利用GetDays($year,$month,$day)函數,我們還可以計算一年的總天數
GetDays(2000,12,31);
GetDays(2021,12,31);
好了就說到這裡了,有其他想知道的,可以點選這個哦。→ →php視訊教程
以上就是PHP函數運用之計算截止某年某月某日共有多少天的詳細内容,更多請關注
富貴論壇www.fgba.net其它相關文章!