komisches Problem mit Datumsberechnungen

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

  • komisches Problem mit Datumsberechnungen

    Hallo Zusammen,

    Ich habe jetzt schon ne ganze Weile das Forum durchsucht und auch ne menge zu Datumsberechnungen gefunden, nur nix, was mir weiter hilft. Ich hoffe hier hat trozdem jemand rat für mich...

    Also folgende function macht Probleme:
    PHP-Code:
    /************************************************************
     * function: checkDateDB()
     *
     * @param     Timestamp $bisDatum
     *
     * @return     NULL
     *
     * Überprüft ob die Datenbank schon bis $bisDatum angelegt ist.
     * Falls nein -> DB bis $bisDatum anlegen
     ************************************************************/
    function checkDateDB($bisDatum){

        
    //Platz() aus config.inc.php
        
    $Platz Platz();

        
    //Das letzte Datum in BELEGUNGEN
        
    $query "SELECT * FROM BELEGUNGEN ORDER BY Datum DESC";
        
    $result mysql_query($query);
        
    $row mysql_fetch_row($result);

        
    $tmp explode("-",$row[0]);
        
    $lastDate mktime(0,0,0,$tmp[1],$tmp[2],$tmp[0]);

        
    //schauen ob der neue Auftrag weiter als das letzte Datum reicht
        
    if($lastDate $bisDatum){
            
            
    $datum $lastDate+86400;

            while(
    $datum <= $bisDatum){

                
    $date getdate($datum);
                
    $date $date[year]."-".$date[mon]."-".$date[mday];

                
    $update "INSERT INTO BELEGUNGEN (Datum, Platz) VALUES ('$date', $Platz)";
                
    mysql_query($update) or die ("checkDateDB ".mysql_error());

                
    $datum $datum+86400;            
            }
        }

    Die function läuft auch eigentlich ganz rund. Nur komischerweise berchnet mir die function den 30-10-2005 immer doppelt und bricht dann natürlicherweise mit folgender SQL-Felermeldung ab: checkDateDB Duplicate entry '2005-10-30' for key 1 .
    Kann mir jemand sagen wodran das liegen könnte? Ich bin mittlerweile echt am verzweifeln und für jeden Hinweis dankbar!

    Also Vielen Dank schonmal!

    Gruss, rabauke

  • #2
    Re: komisches Problem mit Datumsberechnungen

    sommer-/winterzeit-umstellung.

    zeit wird von 3:00 uhr auf 2:00 uhr zurückgestellt, ergo ist der betreffende tag eine stunde länger als sonst.
    und wenn man immer nur 86400 sekunden = 24h drauf rechnet, landet man halt ggf. nochmal auf dem gleichen tag.

    tipp: strtotime() verwenden, anstatt feste sekundenwerte zu addieren.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ah! Ja natürlich... wie dumm von mir.

      Vielen Dank für den Tip!

      Kommentar


      • #4
        bist nicht der erste, der darauf "hereinfällt" ;-)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X