Как печатать все недели в году (или в первый понедельник)

Как печатать все недели, которые начинаются с понедельника и заканчиваются воскресеньем .. как показано ниже .. использование Zend_date

1 04-Jan-2010-10-Jan-2010 2 11-Jan-2010-17-Jan-2010 3 18-Jan-2010-24-Jan-2010 

Начните с поиска первого понедельника, затем вы можете просто добавить 1 неделю до года.

 <?php define('NL', "\n"); $year = 2010; $firstDayOfYear = mktime(0, 0, 0, 1, 1, $year); $nextMonday = strtotime('monday', $firstDayOfYear); $nextSunday = strtotime('sunday', $nextMonday); while (date('Y', $nextMonday) == $year) { echo date('c', $nextMonday), '-', date('c', $nextSunday), NL; $nextMonday = strtotime('+1 week', $nextMonday); $nextSunday = strtotime('+1 week', $nextSunday); } 

Получение первого понедельника года:

 $year = 2010; $date = new Zend_Date(); $date->set("01.01.$year", Zend_Date::DATES); while(true) { if($date->equals('Mon', Zend_Date::MONTH_NAME_SHORT)) { //It's monday - print date break; } else { //It's not monday - move to the next day $date->add('1', Zend_Date::DAY_SHORT); } } в $year = 2010; $date = new Zend_Date(); $date->set("01.01.$year", Zend_Date::DATES); while(true) { if($date->equals('Mon', Zend_Date::MONTH_NAME_SHORT)) { //It's monday - print date break; } else { //It's not monday - move to the next day $date->add('1', Zend_Date::DAY_SHORT); } }