welches Datum der Freitag nach dem 170. Tag (im Schaltjahr der 171.) bzw. nach dem 20.06. des Jahres hat
Dieser eine Satz hätte als Fragestellung gereicht - manche Dinge können so einfach sein :)
getdate() liefert dir den Wochentag als Wert zwischen 0 (Sonntag) und 6 (Sonnabend). Berechne mit getdate() den Wochentag des 21.6. und addiere entsprechend:
Tag Wert Zum Datum zu addieren, um auf nächsten Freitag zu kommen
So 0 +5
Mo 1 +4
Di 2 +3
Mi 3 +2
Do 4 +1
Fr 5 0
Sa 6 +6
$uhr = getdate(); // dieses Jahr ermitteln
$ticktack = mktime(12, 0, 0, 6, 21, $uhr["year"]); // Ticks für 21.6. dieses Jahres ermitteln
$uhr = getdate($ticktack); // aus Ticks den Wochentag für 21.6. ermitteln
if ($uhr["wday"] < 5) { // falls 21.6. Sonntag (0) bis Donnerstag (4)
$mittsommer = 21 + (5 - $uhr["wday"]);
}
else if ($uhr["wday"] > 5) { // falls 21.6. Sonnabend (6)
$mittsommer = 21 + 6;
}
else if ($uhr["wday"] == 5) { // 21.6. ist Freitag
$mittsommer = 21;
}
echo "Mittsommer fällt dieses Jahr auf Freitag, den " . $mittsommer . ". Juni.";
So in der Art, das ist jetzt des besseren Verständnisses halber _sehr_ ausführlich gehalten.