Получение количества високосных дней в диапазоне дат

0

У меня следующие 2 даты:

$start = new DateTime('2008-06-01');
$end = new DateTime('2016-12-31');
$diff = $start->diff($end);

Теперь $diff->days дает 3135 days, но включает 2 височных дня. Как я могу рассчитать сумму 29 февраля между датами $start и $end?

Это для системы выставления счетов, где никогда нельзя рассчитывать на високосные дни (политика компании)

Теги:
datetime
php-5.5

1 ответ

2
Лучший ответ

Вы можете проверить, действительно ли это високосный год:

Единственное различие между этим другим вопросом и этим заключается в том, что там, где они использовали $ year, вы пишете цикл, где $ я начинается в год, который вы хотите начать и заканчивается в конце года (:

  • 0
    Конечно, это работает, хотя я чувствую, что это довольно неэффективно. Знаете ли вы какой-либо другой подход к этому?
  • 1
    Нет, извините, это единственный способ прийти в голову. Кстати, если вы планируете использовать високосные годы чаще, то было бы неплохо хранить их в массиве.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню