======[PHP] findWeekDays====== Eine einfache kleine Funktion um alle Tage ienes bestimmten Wochentages eines Monats zu ermitteln. 'Gib mir alle Freitage im August 2012' =====ab PHP5.3===== ====Code==== /** * @param Wochentag Analog date('D') * @param Monat * @param Jahr * @return */ function findWeekdays($weekday, $month, $year) { $dateFrom = clone $dateTo = DateTime::createFromFormat('d.n.Y', "1.{$month}.{$year}"); $dateFrom->modify('first day of +0 month'); $dateTo->modify('last day of +0 month'); $interval = DateInterval::createFromDateString("next {$weekday}"); return new DatePeriod($dateFrom, $interval, $dateTo, DatePeriod::EXCLUDE_START_DATE); } ====Anwendungsbeispiel ==== $period = findWeekdays('fri', 9, 2012); foreach($period as $date){ echo $date->format("l d.m.Y\n"); } =====bis PHP5.2===== ====Code==== */ function findWeekdays($weekday, $month, $year) { $date = strtotime("next {$weekday}", mktime(0, 0, 0, $month, 1, $year)); while(date('n', $date) == $month){ $dates[] = $date; $date = strtotime("next {$weekday}", $date); } return $dates; } ?> ====Anwendungsbeispiel ==== '; } ?> ===== Ausgabe beider Versionen===== Friday, 07.09.2012 Friday, 14.09.2012 Friday, 21.09.2012 Friday, 28.09.2012 {{tag>PHP Function Date}}