3v4l.org

run code in 300+ PHP versions simultaneously
<?php $dateMonth = '2013-08'; $dateFirstDay = new DateTime($dateMonth . '-01'); $dayOfWeekFirstDay = $dateFirstDay->format('w'); $nofDaysInMonth = $dateFirstDay->format('t'); $daysOfWeek = array( 1 => 'Mon', 2 => 'Tue', 3 => 'Wed', 4 => 'Thu', 5 => 'Fri', 6 => 'Sat', 0 => 'Sun' ); $currentDayOfWeek = $dayOfWeekFirstDay; foreach($daysOfWeek as $dayName) { echo $dayName . "\t"; } echo "\n"; if ($currentDayOfWeek != 1) { $skipFirstDays = (0 == $currentDayOfWeek ? 6 : $currentDayOfWeek-1); echo str_pad('', $skipFirstDays*2, " \t"); } for ($curDay = 1; $curDay <= $nofDaysInMonth; $curDay++, $currentDayOfWeek++) { if ($currentDayOfWeek == 7) { $currentDayOfWeek = 0; } $isWeekEnd = false; if ($currentDayOfWeek == 6 || $currentDayOfWeek == 0) { $isWeekEnd = true; } if (!$isWeekEnd) { echo $curDay . "\t"; } else { echo "[" . $curDay . "]\t"; } if ($currentDayOfWeek == 0) { echo "\n"; } }

preferences:
32.99 ms | 402 KiB | 5 Q