2013-12-09 77 views
0

如何檢查2個時間戳之間是否有2月29日?檢查時間範圍內是否有閏日

$date_from = '2007-06-01'; 
$date_to = '2013-05-30'; 

我知道在這個範圍內有2次feb-29,但我該如何檢查它?

我想統計兩者之間的日子,但閏日不算。

回答

1

通過幾年這將循環,但你會發現一個閏年之後,因爲下一個會後4年是是,更容易等

$date_from = strtotime('2007-06-01'); 
$date_to = strtotime('2013-05-30'); 

for($year=$date_from; $year<=$date_to; $year=strtotime('next year', $year)) { 
    echo date('Y', $year); 
    echo date('L', $year) ? 'Leap year' : 'Not leap year'; 
} 

但我認爲你可以只檢查年份'Y'被4整除。

0

我遇到的問題是我想找到2月29日是否存在較小的日期範圍。它假定不超過兩年。這是我的解決方案:

$startDate = strtotime('2015-10-01 00:00:00'); 
$endDate = strtotime('2016-09-30 23:00:00'); 
$feb29StartYear = mktime(0, 0, 0, 2, 29, date('Y', $startDate)); 
$feb29EndYear = mktime(0, 0, 0, 2, 29, date('Y', $endDate)); 

if((date('L', $startDate) && $startDate < $feb29StartYear) || 
    (date('L', $endDate) && $endDate > $feb29EndYear)) { //We have a leap day 
    //some logic here 
} 

只是認爲這可能對別人有用。

相關問題