Ankündigung

Einklappen
Keine Ankündigung bisher.

date

Einklappen

Neue Werbung 2019

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

  • date

    Hallo zusammen,

    ich habe ein Testskript zum zählen von Tagen erstellt. Beim debuggen tritt ein Fehler auf, den ich mir nicht erklären kann. Vielleicht habt ihr eine Idee: Das Skript funktioniert wunderbar, egal welches Datum übergeben wird. Nur der Wechsel vom 2008-03-31 auf den 2008-03-30 findet nicht korrekt statt. Der 30. wird übersprungen...

    PHP-Code:
    function daycnt($startdate){
        for(
    $i=0$i<20$i++){
            
    $date=date("Y-m-d"show_timestamp($startdate)+$daycnt);
            
    $day=date("D"show_timestamp($startdate)+$daycnt);
            
    $daycnt=$daycnt-86400;    
            echo
    "$date$day<br>";
        }
    }
    daycnt("2008-04-03"); 
    Viele Grüße,
    Zweezo


  • #2
    Du willst vom übergebenen Datum 20 Tage zurück einzeln ausgeben?

    PHP-Code:
    function daycnt($startdate){
      
    $ts strtotime($startdate);
      
    $year date("Y",$ts);
      
    $mon date("m",$ts);
      
    $day date("d",$ts);
        for(
    $i=0$i<20$i++){
            
    $ts_neu mktime(1,1,1,$mon,$day-$i,$year);
            
    $date=date("Y-m-d"$ts_neu);
            
    $tag=date("D"$ts_neu);
            echo
    "$date$tag<br>";
        }
    }
    daycnt("2008-04-03"); 

    Kommentar


    • #3
      Hi cycap,

      danke für Deine Antwort und das Skript. Es funktioniert bestens. Warum aber funktioniert es mit meiner Methode nicht und weshalb kommt es zu dem Sprung?

      Zweezo

      Kommentar


      • #4
        Ich weiss ja nicht was hinter deiner Funktion show_timestamp steckt

        Kommentar


        • #5
          Ach ja, die Funktion ist in unserem System implementiert, habe ich vollkommen übersehen. Die Funktion ist nichts anders als ein mktime()-Handle:

          PHP-Code:
          function show_timestamp($date){
              
          $y=substr($date0,4);
              
          $m=substr($date5,2);
              
          $d=substr($date8,2);
              
          $timestamp=mktime(0,0,0,$m,$d,$y);
              return 
          $timestamp;

          Kommentar


          • #6
            Mal abgesehen davon das es dafür strtotime() gibt liegt es daran jedenfalls nicht, denn damit passiert das gleiche...

            Kommentar


            • #7
              exactly... komisch, oder?

              Kommentar


              • #8
                Mir is grad eingefallen wie man dein Problem nennt: Sommer/Winterzeit

                Kommentar


                • #9
                  Guter Mann! Das wird des Rätsels Lösung sein... Danke!

                  Kommentar

                  Lädt...
                  X