Nasıl bir yılda bütün hafta yazdırmak (ya da yılın ilk Pazartesi)

2 Cevap php

Nasıl Zend_date kullanarak aşağıdaki gibi .. .. Pazartesi ile başlayan tüm hafta yazdırmak ve Pazar ile sona

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

2 Cevap

Ilk Pazartesi bularak başlayın, o zaman sadece yıllık artışlarla kadar 1 hafta ekleyebilirsiniz.

<?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);
}

Yılın ilk Pazartesi Başlarken:

$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);
   }

}