Tage einer Kalenderwoche ausgeben

quidnovi

Erfahrenes Mitglied
Hi @ all,

habe schon stundenlang im Netz gesucht, aber leider keine Lösung für mein Problem gefunden.

Ich lese aus einer Mysql-Db die Kalenderwoche aus. Nun muss ich die Tage dieser Woche dazu ausgeben können.

Als Bsp:
Aus der Db kommt 34.

Nun soll das Ganze folgendermaßen aussehen:
Kalenderwoche: 34 (20.08.2007 - 26.08.2007)

Könnt Ihr mir bitte einen Weg aufzeigen, wie man zu der Kalenderwoche die Tage berechnen kann?

Vielen Dank
 
Hallo,
du könntest das komplette Jahr durchrechnen. Bei 1.1.2007 anfangen und durchrechnen. 7 Tage addieren und aus $datum_von immer die kw errechnen, bis du bei deiner KW angelangt bist ^^.

mfg :D
 
Zuletzt bearbeitet:
Naja so schwer war das doch nun auch wieder nicht ^^
Paar Minuten nachdenken und man könnte auf so eine "unschöne" Lösung kommen wie diese. Naja hoffe dir reicht der Code.
Die erklärung sollte dir zeigen, was meine Idee war ...

PHP:
<?php

$wochen = 34;                                      // welche Wochendaten benötigen wir?
$woche = $wochen*7;                                // Tage berechnen
$timestamp_week = mktime($woche,2007);             //Timestamp berechnen
$timestamp_week = $timestamp_week-1*60*60*24*7;    //Timestamp unserer Woche! --> Sonntag!
$today = date("j.n.Y", $timestamp_week);           //Letzter Wochentag --> Sonntag!
$abzug=0;

for($day = 0; $day < "7"; $day++) //Bis alle restlichen 6 Tage abgelaufen sind
{
if($day == "0"){ $tag[$day]="$today"; }else{
$abzug=$abzug+1;
$tag[$day] = $today-$abzug.".2007";
}
}

$tag = array_reverse($tag);                               //Array umkehren ... 
echo "Kalenderwoche: $wochen ($tag[0] - $tag[6])\n";

?>

Man bekommt im Moment folgende Ausgabe
Kalenderwoche: 34 (20.8.2007 - 26.8.2007)

Solltest du noch die Wochentage (Montag-Sonntag) brauchen, so ist das überhaupt kein großes Ding, dass noch selbst du verändern.
 
Zuletzt bearbeitet:
Hi Euch Beiden,

thx für Eure Antworten.

Habe es nun anders gelöst.

Ich habe in der DB auch die KW des betreffenden Eintrages. Diese KW und das Datum (datTag) hole ich nun aus der DB.
Hier der Code, vielleicht hilft's ja jemanden:
PHP:
// Datum, Kw abfragen und die Tage der betreffenden KW augeben 
	$sql="SELECT kw,datTag FROM ".$abrechnung." GROUP BY kw ORDER BY kw DESC";
	$res = mysql_query($sql) or die (mysql_errno() . ": Keine Verbindung zu \"el_rohner_abrechnung\"! " . mysql_error()."<br />".$sql);

	while($row = mysql_fetch_object($res)){

		$strg = $row->datTag;
		$time = strtotime($strg);
		$anfg = $time;
		$ende = $time;
		while(date('w',$anfg) > 0){
			$anfg -= 60 * 60 * 24;
		}
		$anfg += 60 * 60 * 24;

		while(date('w',$ende) < 6){
			$ende += 60 * 60 * 24;
		}
		$ende += 60 * 60 * 24;

		echo "Kalenderwoche: ".date('W', $anfg)." ";
		echo "(";
		echo date('d.m.y', $anfg);
		echo " - ";
		echo date('d.m.y', $ende);
		echo ")<br />";
	}

Die Ausgabe:
Kalenderwoche: 34 (20.08.07 - 26.08.07)
Kalenderwoche: 33 (13.08.07 - 19.08.07)
Kalenderwoche: 31 (30.07.07 - 05.08.07)

Danke nochmals
 

Neue Beiträge

Zurück