David: Datum sortieren?!

Moin!!

Gibt´s eigentlich eine Funktion, mit der ich testen kann, welches meiner beiden Datums in der Zukunft liegt?

/*Beispiel*/
$today=date("d.m.Y");
$test="03.01.2008";

if ($today<$test)
   {
   echo"<br>Der $today ist kleiner als der $test";
   }
else
   {
   echo"<br>Der $today ist größer als der $test";
   }
/*so geht´s nämlich nicht*/

Bin ich jetzt gezwungen, meine beiden Variablen zu invertieren:
also:
$invertiert="";
$invertiert .=$test[6];
$invertiert .=$test[7];
$invertiert .=$test[8];
$invertiert .=$test[9];
$invertiert .=$test[3];
$invertiert .=$test[4];
$invertiert .=$test[0];
$invertiert .=$test[1];

Invert ist nun 20080103 und kann mit der $today verglichen werden, sofern ich die Variable ebenso wie $test invertiert habe.

Da gibt´s doch sicherlich was eleganteres, oder?

  1. Hellihello David,

    kannst doch ein Datum in Unixzeit umrechnen.

    Dank und Gruß,

    frankx

    1. Hey frankx,

      hast du da vielleicht einen Link für mich, wie ich das mache?

      1. Hellihello David,

        http://de3.php.net/manual/de/function.strtotime.php

          
        echo strtotime("10 September 2007"), "\n";  
        echo time()."\n\n";  
        
        

        Dank und Gruß,

        frankx

  2. Hello David,

    Gibt´s eigentlich eine Funktion, mit der ich testen kann, welches meiner beiden Datums in der Zukunft liegt?

    Na klar kannst Du feststellen, welche Datummse (sic!) in der Zukunft liegen.

    Gegenwart ist (bei richtig eingestellter Serverzeit) $jetzt = time();
    Das Ergebnis ist allerdings noch abhängig von Servereinstellungen, ob da CET oder UTC
    http://de.wikipedia.org/wiki/UTC rauskommt.

    Nehmen wir mal UTC an, dann müsstest Du das zu prüfenden Datum nebst Zeit eben auch in UTC haben.

    und dann ist

    if ($time() > strtotime($datum))

    eine Möglichkeit, den Vergleich durchzuführen.

    http://de2.php.net/manual/en/function.strtotime.php

    if ($today < $test)

    Das ist insofern Unsinn, weil die Notation nicht dazu passt. Wenn Du '2008-01-03' für den dritten Januar 2008 geschrieben hättest, und das andere Datum in derselben Notation vorliegen würde, wäre der vergleich wieder sinnvoll.

    Harzliche Grüße vom Berg und Frohe Weihnachtszeit

    Tom

    --
    Nur selber lernen macht schlau

  3. Hallo,

    Das iso-datum ist so aufgebaut dass man das direkt als Zahl vergleichen kann:

    $today = date("Ymd"); // 20071221
    $date = "20071222";

    if((int)$today < (int)$date) echo "Datum liegt in der Zukunft";
    else echo "Datum ist gleich heute oder liegt in der Vergangenheit";

    Jeena