0
如何檢查2個時間戳之間是否有2月29日?檢查時間範圍內是否有閏日
$date_from = '2007-06-01';
$date_to = '2013-05-30';
我知道在這個範圍內有2次feb-29,但我該如何檢查它?
我想統計兩者之間的日子,但閏日不算。
如何檢查2個時間戳之間是否有2月29日?檢查時間範圍內是否有閏日
$date_from = '2007-06-01';
$date_to = '2013-05-30';
我知道在這個範圍內有2次feb-29,但我該如何檢查它?
我想統計兩者之間的日子,但閏日不算。
通過幾年這將循環,但你會發現一個閏年之後,因爲下一個會後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整除。
我遇到的問題是我想找到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
}
只是認爲這可能對別人有用。