Ankündigung

Einklappen
Keine Ankündigung bisher.

Wochentage ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    @Fips:
    Code:
    ---------------------------------------------------------------------
       function AktuellerTag($Tag,$Monat,$Jahr){
          $LaufDatum = $Tag.".".$Monat.".".$Jahr;
          $this->AktuDay = date("j.n.Y",$this->startDay);
    
          if($this->AktuDay == $LaufDatum){
    
            if($this->startDay < $this->endDay){
                $this->startDay = $this->startDay+3600*24; //<<<<<<<<<<<<<<<<<<<<<<< !!!!!
    /*-----------------------------------^^^^^^^^^^^^^^^^^
    *   Weil du hier bei deiner Berechnung davon ausgehst,
    *   daß jeder Tag 24 Stunden hat.
    *   Der Tag, an dem von Sommer- auf Winterzeit umgestellt wird, hat aber 25 Stunden,
    *   und der Tag, an dem von Winter- auf Sommerzeit geschaltet wird hat 23 Stunden.
    *   Die Zeitumstellung Sommer/Winterzeit wird immer am letzten Sonntag des Monats Oktober
    *   vorgenommen.
    *   Im Jahr 2011 erfolgt die Umstellung Sommer/Winterzeit am 31.Oktober.
    *   Deshalb kannst du diesen Fehler im Oktober 2011 nicht sehen.
    
    */
    ---------------------------------------------------------------------
    Du solltest ALLE deine MKTIME()-Funktionen, die du verwendest
    wie folgt formulieren:
    Code:
    --------> mktime(1,0,0,$this-> ...
    Dann sollte es richtig funktionieren!

    ~dilemma~

    Kommentar


    • #17
      ich hab jetzt nicht alle posts gelesen, hoff mal dass das jetzt noch reinpasst:
      wenn du auch Daten (? datums..naja egal ) hast die vor dem 1.1.1970 sind, klappen die funktionen hier nicht!
      hab da mal ne funktion geschrieben, die den wochentag berechnet, von jedem datum:
      http://nicky.eaglescripts.de/mathe/?...nes_Datums.php
      sorry falls des grad net passt!

      eagleScripts.de

      Kommentar


      • #18
        Mhm ich hab es rausbekommen wie man das änderen kann , das bezog sich nun auf meine Klasse im spezifischen:

        PHP-Code:
        <?php
        ...
                    if(
        date("I",mktime(0,0,0,$Monat,$Tag+1,$Jahr)) == 0  &&  $Monat == 10){ 
                        
        $this->startDay $this->startDay+3600*25
                    }else{ 
                        
        $this->startDay $this->startDay+3600*24
                    }
        ?>
        Ich habe einfach geschaut ob der Tag der der nächste ist Winterzeit hat , das wird mit date("I") ermittelt und gibt eine 0 zurück wenn ja.

        Im prinzip muss man sich den Tag nur rausfischen , diesem einen Wert zuweisen und vergleichen ob der Tag schon vorbei ist oder nicht.
        Das gleiche Spiel muss man von der Winterzeit zur Sommerzeit nochmal machen.

        Beide umstellungen finden meines Wissens nach nun nur im Oktober und im März statt somit kann man diese Monate schon mal eingrenzen.Zumindest traten da bei mir Probleme auf.

        Den Tag kann man im Prinzip einfach ermitteln indem man , wenn man bei dem Tag angelangt ist einfach was einsetzt und dann mittels empty() schaut ob schon ein Wert dafür existiert.Wenn ja dann halt mit 24 Stunden weiter rechnen , ansonsten halt 25 stunden raufrechnen oder 23 Stunden.

        Bei der Klasse war es quasi nun egal da jeder Monat neu gestaltet wird , und somit würde das nicht mehr ins Gewicht fallen.
        Das heisst er rechnet zwar am Ende vom Oktober immer 25 Stunden drauf. Aber da der November neu ermittelt wird gibt es keine Probleme.

        Edit : @dilemma ob das so funktioniert weiss ich nicht :/ aber mal austeste n gleich. Der Hinweis mit der Winter zur Sommerzeit hat mich um 99% vorran getrieben so das das Problem schon mal klar war

        Danke Dir dafür an dieser Stelle noch einmal ausdrücklich. Ich bin wirklich fast Wahnsinnig geworden dabei.

        Kommentar

        Lädt...
        X