How print all the weeks in an year (or first monday of year)

后端 未结 2 605
离开以前
离开以前 2021-01-25 07:23

How print all the weeks which start with monday and end with sunday.. like below ..using Zend_date

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


        
相关标签:
2条回答
  • 2021-01-25 07:35

    Getting first monday of the year:

    $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);
       }
    
    }
    
    0 讨论(0)
  • 2021-01-25 07:53

    Start by finding the first monday, then you can just add 1 week until the year increments.

    <?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);
    }
    
    0 讨论(0)
提交回复
热议问题