Как печатать все недели, которые начинаются с понедельника и заканчиваются воскресеньем .. как показано ниже .. использование 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); } }