Tagesdatum für Kalenderwoche ausgeben

hds

Grünschnabel
Hallo,

ich suche eine Möglichkeit das Datum jeden Tages für eine Kalenderwoche auszulesen und darzustellen.

Heute ist ja z.B. die 47 KW und das Datum für heute Sonntag ist kein Thema.

Aber wie ermittel ich das Datum für Montag, Dienstag, Mittwoch etc dieser Woche?

Als Ausgangspunkt habe ich immer die aktuelle Jahreskalender-Woche.

Wäre super, wenn mir jemand einen Tipp geben könnte, wie man das berechnet.

Danke!

HDS
 
Original geschrieben von eLorFiN
du brauchst die Tage/Daten nicht in Abhängigkeit von der jetztigen Kalenderwoche zu generieren.
Das Einfachste wäre wahrscheinlich, einen Timestamp mittels date("format",time()) oder gmdate("format",time()) in ein Datum unzuwandeln, siehe dazu
http://www.selfphp.info/funktionsreferenz/datums_und_zeit_funktionen/index.php

danke, aber das wird mir nix bringen, da ich eine tabelle mit den wochentagen habe und PHP mir hinter den wochentag immer das aktuelle Datum aus dieser jetzt aktuellen KW schreiben soll.
 
Ich hatte das vor ner Weile mal probiert, die ganze Berechnung war mir aber zu umständlich, da hab ichs so gemacht:
PHP:
<?php
function cWeekDay($yy,$nr,$which)
{
$newYear=mktime(0,0,0,1,1,$yy);
$day=86400;$calendar=array();$ww=1;
$yyLen=365+(1*date('L',$newYear));
for($dd=1;$dd<=$yyLen;++$dd)
   {
   $stamp=$newYear+(86400*($dd-1));
   if(!isset($calendar[$ww]))
     {
     $calendar[$ww]=array($stamp);
     }
     $calendar[$ww][]=$stamp;
   if(!date('w',$stamp)||$dd==$yyLen)
     {
     if($dd==$yyLen){break;}
     $ww++;
     }
   }
if(!isset($calendar[$nr][$which])){return 'Invalid Date';}
return date("l,j.F",$calendar[$nr][$which]);
}
?>
Die Funktion liest den kompletten Kalender des betreffenden Jahres in einen Array, aus welchem man sich dann bedienen kann.
Aufruf:
PHP:
echo cWeekDay($Jahr,$Kalenderwoche,$Wochentag);
Beispiel:
PHP:
echo cWeekDay(2003,4,3);
gibt den Mittwoch der 4.Kalenderwoche in 2003 zurück....Wednesday,22.January
 
Zuletzt bearbeitet:
hi fatalus,

vielen Dank! Genau das habe ich gesucht.

Ich hab jetzt nur noch ein Problem: Die KW 47 soll mit dem Montag anfangen. Wenn ich das über

$kalenderwoche = strftime("%W", time());

einstelle, hängt PHP immer um eine Woche zurück. Die Variable %U möchte ich nicht einsetzten, da meine Woche am Montag beginnen soll.

Kann man PHP das noch irgendwo in dieser Funktion sagen?

Danke, wäre super von Dir, wenn Du mir nochmal helfen köntest.

HDS
 
Du kannst da schon %U nehmen. Den Wochentag sagst du der Funktion ja mit dem dritten Parameter, ist der "1", bekommst du den Montag(Sonntag ist 7, entgegen der sonst üblichen Zählweise)
Einzige Ausnahme sind die erste und letzte Woche, die muss ja nicht gezwungenermassen mit Montag beginnen oder mit Sonntag enden.
 
Zurück