2015-01-05 4 views
0

я пытаюсь получить список недель между двумя годамиPHP - DatePeroid нет 2015 года в списке

$p = new DatePeriod(
    new DateTime('2014-12-01'), 
    new DateInterval('P1W'), 
    new DateTime('2015-01-05') 
); 
foreach ($p as $w) { 
    echo $w->format('Y-W') , PHP_EOL; 
} 

Но это показывает только 2014 и вместо 2015-01 он показывает 2014-01 Что случилось с этим кодом?

Выход выглядит следующим образом:

2014-49 
2014-50 
2014-51 
2014-52 
2014-01 
+1

Ну, 29 декабря, это часть первой недели 2015 года, но это еще день с 2014 года. Именно поэтому его показали как 2014-01. – Ronnie

ответ

3

При использовании W в течение нескольких недель в датах вы должны использовать o в течение многих лет. Пример echo $w->format('o-W'). Ресурс php date manual.

+0

yayks! большое спасибо! – breq

Смежные вопросы