+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Datum mit anderem Datum vergleichen - Differenz?

  1. #1
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420

    Datum mit anderem Datum vergleichen - Differenz?

    Hi,

    sagen wir mal, ich hab zwei Variablen mit Datum und Uhrzeit:

    $datum1="2001-12-23 06:23:00";
    $datum2="2001-12-22 21:22:43";

    Wie kann ich jetzt die beiden jetzt "vergleichen"? Ich möchte rauskriegen, dass das 2. Datum halt einen Tag älter ist.

    Der Sinn: ich will bestimmte Einträge in einer Datenbank, die älter als einen Tag sind, löschen lassen.

    Danke!
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  2. #2
    TP-Member ¡s¢htar macht alles soweit korrekt Avatar von ¡s¢htar
    Registriert seit
    Dec 2001
    Ort
    beñztøwn (stuttgart)
    Beiträge
    35

    Smile hallo

    Hi,

    sagen wir mal, ich hab zwei Variablen mit Datum und Uhrzeit:

    $datum1="2001-12-23 06:23:00";
    $datum2="2001-12-22 21:22:43";

    Wie kann ich jetzt die beiden jetzt "vergleichen"? Ich möchte rauskriegen, dass das 2. Datum halt einen Tag älter ist.

    Der Sinn: ich will bestimmte Einträge in einer Datenbank, die älter als einen Tag sind, löschen lassen.

    Danke!

    hallo Adagio

    dazu würde ich die daten erstmal splitten, also:
    $tag1 $monat1 $jahr1 && $tag2 $monat2 $jahr2

    dann mit schleifen arbeiten:

    if ($jahr1>$jahr2) {$jahrdif=($jahr1-jahr2)}
    elseif ($jahr1=$jahr2) {$jahrdif=0}
    if ($monat1>$monat2) ....

    kann jetzt nicht sagen ob die syntax so stimmt, bin c gewöhnt

    müsste aber vom prinzip her ähnlich sein.

    grüße

    ¡s¢htar
    ¤ wenn ich aufwache möchte ich weiterträumen von den möglichkeiten des lebens...
    ... es liegt in unserer macht unsere träume zu leben ¤

  3. #3
    TP-Supporter Howie Munson II macht alles soweit korrekt Avatar von Howie Munson II
    Registriert seit
    May 2001
    Ort
    Berlin
    Beiträge
    435
    Mach's doch einfach so :

    DELETE FROM table WHERE datum < now()

    wobei die Spalte Datum im Format DATE sein muss (nicht Timestamp oder etwas mit Zeit)

    das Datum kann man auch ganz einfach so in die DB bingen :

    INSERT INTO table (...,datum) VALUES (...,NOW())

    Da brauch man dann nichts mit PHP programmieren ...

  4. #4
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Nein, das ist eine feste Vorgabe - die Tabellenzelle ist vom Typ DATETIME ... damit muss ich jetzt umgehen ...
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  5. #5
    TP-Supporter Howie Munson II macht alles soweit korrekt Avatar von Howie Munson II
    Registriert seit
    May 2001
    Ort
    Berlin
    Beiträge
    435
    tja, das ist Pech

    Also, dann würde ich mit PHP das Datum generieren (in diesem komischen Ami-Format) und folgende Abfrage starten

    select * from datum where datum < '2001-12-24'

    (wobei 2001-12-24 das von PHP generierte Tagesdatum ist)

    das geht auch so bei DATETIME

  6. #6
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Mit strtotime() kannst Du Daten ins UNIX-Format (Millisekunden seit 1.1.1970) umrechnen. Das geht zwa auch mit mktime(), aber dafür müssen die Daten in einem festgelegten Format vorliegen.

    Mit diesem Script kannst Du feststellen, wiebiel Tage Unterschied zwischen den Daten liegen:

    PHP-Code:
    $datum1="2001-12-23 06:23:00"
    $datum2="2001-12-22 21:22:43"

    $differenz strtotime($datum1) - strtotime(datum2);
    $differenz $differenz 86400// Erklärung unten 
    Die Division durch 86400 rechnet die Tage aus, wenn Du andere Einheiten (Stunden etc.) möchtest, musst einen entsprechend anderen Divisor nehmen.

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51