Baseie-se no número da semana, obtenha todas as datas desta semana
Obtenha o carimbo de data / hora da primeira semana do mês
$month = 8;
$year = 2013;
$timestamp = mktime(0, 0 , 0, $month, 1, $year);
A nova semana em PHP começa na segunda, mas queremos que a nova semana comece no domingo
$timestamp += (60 * 60 * 24);
Obtenha o número da semana da primeira semana do mês
$first_week_no = date('W', $timestamp);
Exibir 5 semanas
$range = range($first_week_no, $first_week_no + 4);
foreach ($range as $week_no) {
$week_start = new DateTime();
$week_start->setISODate($year, $week_no);
$week_start->modify('-1 day');
$seven_day_week = array('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday');
$week = array();
for ($i = 0; $i < 7; $i++) {
$day = $seven_day_week[$i];
$week[$day] = $week_start->format('Y-n-j');
$week_start->modify('+1 day');
}
echo '<pre>';
echo "Week {$week_no}";
var_dump($week);
echo '</pre>';
}
SaÃda de exemplo