duke: Wochentag eines bestimmten Datums in PHP

Hoi, ich komm irgendwie nicht weiter... Wenn mir irgendeiner sagen kann, was an meiner methode untenstehend fehlt, oder ob der Wochentag eines bestimmten Datums einfacher zu ermitteln ist zu ermitteln ist.

(kurze erklärung: mit den for schleifen erstelle ich ein array $day[<jahr>][<monat>][<tag>] in das fortlaufend die wochentage eingefügt werden, beginnend bei Montag 2007.1.1 bis zum 2010.12.31 ...
in dem script habe ich eigentlich nur noch ein problem, ich muss die schaltjahre ausgrenzen, habe dabei aber eine kleine denkblockade...
wenn mir da jemand weiterhelfen könnte, wäre ich sehr froh.

Vielen Dank schonmal im Vorraus

Grüße duke

  
<?php  
$weekday[1]="Montag";  
$weekday[2]="Dienstag";  
$weekday[3]="Mittwoch";  
$weekday[4]="Donnerstag";  
$weekday[5]="Freitag";  
$weekday[6]="Samstag";  
$weekday[7]="Sonntag";  
$wd=1;  
for ($y=2007;$y<=2010;$y++) {  
 for ($m=1;$m<=12;$m++) {  
  if ($m==2) {  
    for ($d=1;$d<=28;$d++) {  
     $day[$y][$m][$d]=$weekday[$wd];  
     $wd++;  
     if ($wd==8) $wd=1;  
    }  
   }  
  else {  
   if ($m>7){  
    if (fmod($m,2)==1) {  
     for ($d=1;$d<=30;$d++) {  
      $day[$y][$m][$d]=$weekday[$wd];  
      $wd++;  
      if ($wd==8) $wd=1;  
      }  
     }  
    else {  
     for ($d=1;$d<=31;$d++) {  
      $day[$y][$m][$d]=$weekday[$wd];  
      $wd++;  
      if ($wd==8) $wd=1;  
      }  
     }  
    }  
   else {  
    if (fmod($m,2)==1) {  
     for ($d=1;$d<=31;$d++) {  
      $day[$y][$m][$d]=$weekday[$wd];  
      $wd++;  
      if ($wd==8) $wd=1;  
      }  
     }  
    else {  
     for ($d=1;$d<=30;$d++) {  
      $day[$y][$m][$d]=$weekday[$wd];  
      $wd++;  
      if ($wd==8) $wd=1;  
      }  
     }  
    }  
   }  
  }  
 }  
echo $day[2007][2][28];  
?>  

  1. Hallo,

    Hoi, ich komm irgendwie nicht weiter... Wenn mir irgendeiner sagen kann, was an meiner methode untenstehend fehlt, oder ob der Wochentag eines bestimmten Datums einfacher zu ermitteln ist zu ermitteln ist.

    Was an deiner Methode falsch ist, kann ich dir nicht sagen, sieht aber ziemlich umstaendlich aus.
    Versuche es mal hiermit: date

    mfG,
    steckl

    1. Was an deiner Methode falsch ist, kann ich dir nicht sagen, sieht aber ziemlich umstaendlich aus.
      Versuche es mal hiermit: date

      damit kann ich aber nicht ermitteln welcher wochentag der zb. 29.02.2008 ist... darum gehts mir ja

      grüsse duke

      1. Hallo,

        damit kann ich aber nicht ermitteln welcher wochentag der zb. 29.02.2008 ist... darum gehts mir ja

        echo date("l", mktime(0, 0, 0, 2, 29, 2008));

        Gruß aus Berlin,
        Markus

        --
        alles wird gut...
  2. Hallo duke,

    Hoi, ich komm irgendwie nicht weiter... Wenn mir irgendeiner sagen kann, was an meiner methode untenstehend fehlt, oder ob der Wochentag eines bestimmten Datums einfacher zu ermitteln ist zu ermitteln ist.

    Benutz doch lieber die - reichlich vorhandenen - PHP-eigenen Datumsfunktionen:
    Such dir den Timestamp des Tages, an dem du anfangen willst (am Besten mittags, da kann es keine Probleme mit Schaltsekunden etc geben), mach eine Schleife, und erhöh ihn jede Runde um 24*60*60, ermittel mit strftime(%u) den Wochentag.

    Viele Grüße aus Freiburg,
    Marian

    --
    Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
    1. echo $begrüßung;

      Benutze [...] Timestamp des Tages, an dem du anfangen willst (am Besten mittags, da kann es keine Probleme mit Schaltsekunden etc geben)

      Gibt es auch so nicht, da die Schaltsekunden nicht in den Unix-Timestamp einfließen.

      echo "$verabschiedung $name";

  3. Vielen Dank, ihr habt mir alle sehr geholfen..

    Grüße Duke