Sie können strtotime verwenden, um "nächsten Samstag", basierend auf einem Startdatum zu finden. Wenn das Startdatum ist der Tag vor dem frühestmöglichen Vortages (21) erhalten wir die Antwort ...
//required year/month
$yyyymm="2009-01";
//find next saturday after earliest possible date
$t=strtotime("next saturday", strtotime("{$yyyymm}-21"));
//here you go!
echo "4th saturday of $yyyymm is ".strftime("%Y-%m-%d",$t)."\n";
Frühestmöglicher 4. Wiederholung eines Tages in einem Monat ist die 22. (1,8,15, 22), letzte mögliche 4. Wiederholung ist 28. (7,14,21,28).
EDIT: Obwohl es in der Dokumentation nicht klar ist, können Sie den „vierten Samstag“ fordern - die nullteen Tag des Monats als Grundlage verwenden:
$t=strtotime("fourth saturday", strtotime("{$yyyymm}-00"));
oder die Basis Zeit auslassen und geben Sie den Monat und das Jahr direkt:
$t=strtotime("fourth saturday feb 2009");
Spitze des Hutes zu Robin „ich bin kein PHP-Coder“ Tag für das Auffinden, dass :)
Übrigens wäre es der 28. für Februar und März. – kmkaplan
Nicht so zufällig, da der Februar 28 Tage hat, was durch 7 teilbar ist. Das gilt natürlich nicht für Schaltjahre. –