Monat anhand einer KW und eines Jahres ermitteln

Nob

Mitglied
Hallo miteinander

Ich möchte den Monat anhand einer Kalenderwoche und eines Jahres ermitteln.
Dazu habe ich folgendes Skript verwendet: (Kennen sicher einige von euch)

Code:
function firstkw($jahr) {
	$erster = mktime(0,0,0,1,1,$jahr);
	$wtag = date('w',$erster);
	
	if ($wtag <= 4) {
	// Donnerstag oder kleiner: auf den Montag zurückrechnen.
		$montag = mktime(0,0,0,1,1-($wtag-1),$jahr);
		//echo $wtag." => ".$montag." ¬";
	} else {
		// auf den Montag nach vorne rechnen.
	$montag = mktime(0,0,0,1,1+(7-$wtag+1),$jahr);
	}
	return $montag;
}

function mondaykw($kw,$jahr) {
	$firstmonday = firstkw($jahr);
	$mon_monat = date('m',$firstmonday);
	$mon_jahr = date('Y',$firstmonday);
	$mon_tage = date('d',$firstmonday);
	
	$tage = ($kw-1)*7;
	
	$mondaykw = mktime(0,0,0,$mon_monat,$mon_tage+$tage,$mon_jahr);
	return $mondaykw;
}

Zu meinem Problem:
Wenn ich die Kalenderwoche 1 und das Jahr 2005 in die Funktion gebe, bekomme ich auch das richtige Resultat. Bei KW 1 und Jahr 2004 allerdings nicht..

date('m',mondaykw(1,2004)) => 12
date('m',mondaykw(1,2005)) => 01

Woran liegt das? Was mach ich falsch? :confused:

Danke im Vorraus!
Gruss Michi
 
Wenn du willst, dass die erste Kalenderwoche als die erste Woche interpretiert wird, in der der Montag der erste des neuen Jahres ist, dann musst du die letzte Zeile der Funktion mondaykw wie folgt ergänzen:
PHP:
return $mondaykw + 604800;
 
Zuletzt bearbeitet:
Zurück