Timestamp mit aktuellem Datum vergleichen?

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

  • Timestamp mit aktuellem Datum vergleichen?

    Moin!

    Häng mal wieder ein wenig...
    Momentan lese ich die Timestamp aus der Datenbank aus.
    Ebenso die aktuelle Zeit des Servers.
    Danach extrahiere ich Tag und Monat aus beidem.
    Sprich ich hab z.B.
    $month="8";
    $day="8";
    $servmonth="12";
    $servday="24";

    Wie kann ich diese Werte nun am besten miteinander vergleichen?
    Ich möchte für den Fall das $month mehr als 2 vom $servmonth abweicht ein Script gestartet wird. Dabei sollte aber auch beachtet werden, dass nach der 12 wieder mit der 1 angefangen wird und es da zu keinen Problemen kommen soll (für den Fall, dass die Timestamp auf Dezember (12) steht und die Serverzeit z.B. auf März (3)).
    Kann mir dazu jemand kurz ne Schleife basteln? Wär echt nett! :-)

    Bye... Björn

  • #2
    warum so kompliziert? nimm doch von deinem server auch den timestamp,
    subtrahiere davon 2 monate (60*60*24*30*2)=60 tage,
    und dann vergleichen...
    eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

    Kommentar


    • #3
      Hallo,

      das Skript berechnet den Zeitabstand in Tagen, müsste dir weiterhelfen!?

      Gruß
      fusiba

      PHP-Code:
      <?php

      // aktuelles timestamp
      $akt_timestamp time();

      // datum aus datenbank
      $monat 8;
      $tag 1;
      $jahr 2002;

      // timestamp berechnen
      $old_timestamp mktime(0,0,0,$monat$tag$jahr);

      //tage zwischen beiden zeitpunkten ausgeben, 86400 Sekunden = 1 Tag
      print round(($akt_timestamp-$old_timestamp)/86400);

      ?>

      Kommentar


      • #4
        Also für Datumsberechnungen bietet MySQL ne Menge Funktionen das is einfacher als das Gewurstel hier, weil da auch Der jahresumbruch beachtet wird.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Stimmt
          Wenn timestamp in der Datenbank das Format DATETIME oder DATE, ... hat:

          DATE_ADD(date,INTERVAL expr type)
          DATE_SUB(date,INTERVAL expr type)
          ADDDATE(date,INTERVAL expr type)
          SUBDATE(date,INTERVAL expr type)

          Diese Funktionen können Datums-, Zeitberechnungen durchführen.
          (Ab MySQL Version 3.22.)
          ADDDATE() und SUBDATE() sind Synonyme für DATE_ADD() und DATE_SUB().

          Also:
          $result = mysql_query("SELECT * FROM TABELLE where timestampintabelle < DATE_SUB(now(), INTERVAL 2 MONTH)");


          "date" i.a. Beschreibung ist das Startdatum.
          "expr" spezifiziert das Interval, welches addiert oder subtrahiert werden soll.
          "type" beschreibbt wie das Interval interpretiert werden soll.

          SECOND Sekunden
          MINUTE Minuten
          HOUR Stunden
          DAY Tage
          MONTH Monate
          YEAR Jahre
          MINUTE_SECOND Minuten:Sekunden
          HOUR_MINUTE Stunden:Minuten
          DAY_HOUR "Tage Stunden"
          YEAR_MONTH "Jahre-Monate"
          HOUR_SECOND "Stunden:Minuten:Sekunden"
          DAY_MINUTE "Tage Stunden:Minuten"
          DAY_SECOND "Tage Stunden:Minuten:Sekunden"

          mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
          -> 1998-01-01 00:00:00
          mysql> SELECT INTERVAL 1 DAY + "1997-12-31";
          -> 1998-01-01
          mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
          -> 1997-12-31 23:59:59
          mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
          INTERVAL 1 SECOND);
          -> 1998-01-01 00:00:00
          mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
          INTERVAL 1 DAY);
          -> 1998-01-01 23:59:59
          mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
          INTERVAL "1:1" MINUTE_SECOND);
          -> 1998-01-01 00:01:00
          mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
          INTERVAL "1 1:1:1" DAY_SECOND);
          -> 1997-12-30 22:58:59
          mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
          INTERVAL "-1 10" DAY_HOUR);
          -> 1997-12-30 14:00:00
          mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
          -> 1997-12-02
          mysql> select date_add("1999-01-01", interval 1 day);
          -> 1999-01-02
          mysql> select date_add("1999-01-01", interval 1 hour);
          -> 1999-01-01 01:00:00

          Wenn ein ungültiges Datum verwendet wird, ist das Ergebnis NULL.

          Kommentar


          • #6
            Ajo und selbst wenns ein Timestamp is kann man mit der
            FROM_UNIXTIME() Funktion wunderbar schaffen...

            Have fun...
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar

            Lädt...
            X