Что-то вроде этого:
$date = strtotime('2009-01-01 next sunday');
$dateMax = strtotime('2009-02-23');
$nbr = 0;
while ($date < $dateMax) {
var_dump(date('Y-m-d', $date));
$nbr++;
$date += 7 * 24 * 3600;
}
var_dump($nbr);
И вы получите:
string '2009-01-04' (length=10)
string '2009-01-11' (length=10)
string '2009-01-18' (length=10)
string '2009-01-25' (length=10)
string '2009-02-01' (length=10)
string '2009-02-08' (length=10)
string '2009-02-15' (length=10)
string '2009-02-22' (length=10)
Для дат каждого воскресенья и:
int 8
За количество воскресений
(я быстро проверил, и, похоже, эти даты действительно воскресенья)
Что делает этот код:
- сначала получите дату первого воскресенья после 2009-01-01
- затем, пока текущая дата до 2009-02-23, итерация
- на каждой итерации, добавьте 7 * 24 * 3600 секунд (7 дней в неделю, 24 часа в день, 3600 секунд в час)
Примечание: я изменил формат ваших дат, чтобы использовать ГГГГ-ММ-ДД, а не ДД-ММ-ГГГ; это формат, который обычно используется - так что, вероятно, это хорошая идея, чтобы убедиться, что strtotime работает правильно. (не уверен, что он будет работать нормально с вашим форматом)