Получение всех дат по понедельникам и вторникам на следующий год

Мне нужно вывести список дат (только по понедельникам и вторникам) на следующие 12 месяцев с текущей даты следующим образом:

Январь 2010
Вт 12 янв 2010
Пн 18 янв 2010
Вт 19 янв 2010
Пн 25 янв 2010
Февраль 2010
Вт 02 фев 2010
Пн 08 фев 2010
Вт 09 фев 2010
Пн 15 фев 2010
Вт 16 фев 2010
Пн 22 фев 2010
Март 2010
Вт 09 мар 2010
Пн 15 мар 2010
Вт 16 мар 2010
...















Будучи новичком в PHP, я понял,StrToTime и цикл в течение следующих 52 недель - лучший путь.

$blockedDatesInput = "08 Mar 2010,12 Apr 2010"; // dont show these dates
$blockedDates = explode ("," , $blockedDatesInput); // convert to array
$currentMonth = ""; // current month marker

// loop over the next 52 weeks to find Mondays and Tuesdays
for($i=0; $i<=52; $i++){
// build the month header
$monthReference = date("M Y", strtotime('+'.$i.' Week'));

// check if date exists in $blockeddate
if (!in_array(date("d M Y", strtotime('+'.$i.' Monday')), $blockedDates) || 
    !in_array(date("d M Y", strtotime('+'.$i.' Tuesday')), $blockedDates) ) {
     // check if we have to show a new month
     if(strcmp($monthReference, $currentMonth) <> 0){
       echo $monthReference.'<br />',"\n";
     }else{
      // output the dates
      echo date("D d M Y", strtotime('+'.$i.' Monday')).'<br />',"\n";
      echo date("D d M Y", strtotime('+'.$i.' Tuesday')).'<br />',"\n";
     }
       $currentMonth = date("M Y", strtotime('+'.$i.' Week'));
   }
}

Однако вывод из моего кода

Январь 2010
Пн 18 янв 2010
Вт 12 янв 2010
Пн 25 янв 2010
Вт 19 янв 2010
Февраль 2010
Пн 08 фев 2010
Вт 02 фев 2010
Пн 15 фев 2010
Вт 09 фев 2010
Пн 22 фев 2010
Вт 16 фев 2010
Март 2010
Пн 08 мар 2010
Вт 02 мар 2010
Пн 15 мар 2010
Вт 09 мар 2010
Пн 22 мар 2010
Вт 16 мар 2010
Пн 29 мар 2010
Вт 23 мар 2010




















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

Есть ли более элегантный / простой способ решить эту проблему?

Используемая версия PHP - 5.2.11, и в скором времени нет перспективы перехода на 5.3 :-(

Спасибо за вашу помощь.

Код ниже модификации, как предложено Али. Изменена дата компьютера с вт, 12.01.2010, на среду, 13.01.2010, чтобы проверить вывод.

$blockedDatesInput = "08 Mar 2010,12 Apr 2010"; // dont show these dates
$blockedDates = explode ("," , $blockedDatesInput); // convert to array
$currentMonth = ""; // current month marker

// loop over the next 52 weeks to find Mondays and Tuesdays
for($i=0; $i<=52; $i++){
// build the month header
$monthReference = date("M Y", strtotime('+'.$i.' Week'));

// check if date exists in $blockeddate
if (!in_array(date("d M Y", strtotime('+'.$i.' Monday')), $blockedDates) || 
    !in_array(date("d M Y", strtotime('+'.$i.' Tuesday')), $blockedDates) ) {
     // check if we have to show a new month
     if(strcmp($monthReference, $currentMonth) <> 0){
       echo $monthReference.'<br />',"\n";
     }else{
      // output the dates (changed the order as suggested by Aly)
      echo date("D d M Y", strtotime('+'.$i.' Tuesday')).'<br />',"\n";
      echo date("D d M Y", strtotime('+'.$i.' Monday')).'<br />',"\n";          
     }
       $currentMonth = date("M Y", strtotime('+'.$i.' Week'));
   }
}

Выведите снова в неправильном порядке.

Январь 2010
Вт 19 янв 2010
Пн 18 янв 2010
Вт 26 янв 2010
Пн 25 янв 2010
Февраль 2010
Вт 09 фев 2010
Пн 08 фев 2010
Вт 16 фев 2010
Пн 15 фев 2010
Вт 23 фев 2010
Пн 22 фев 2010