PHP-Entwicklung

PHP-Entwicklung

Posts 1-7 of 7
  • User photo
    Isabelle Diez
    The company name is only visible to registered members.
    28 Jul 2008, 4:34 pm
    Hilfe bei der Abfrage mit Datum
    Hallo zusammen

    Ihr könnt mir sicher helfen ;-)

    Ich habe Datum1 (23.07.2008) und Datum2, welches immer das heutige Datum ist (28.07.2008)

    Was ich machen muss:

    Wenn Datum1 1Tag später als Datum2 ist
    dann etc.


    Ich hoffe es ist irgendwie versändlich.....?!


    Wie kann ich den diese "später als" Abrfrage erstellen?

    Vielen Dank
    Gruss Isa
  • Uwe Pries
    Uwe Pries    Premium Member
    The company name is only visible to registered members.
    Hallo Isabelle,

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

    Grüße
    Uwe Pries
  • Christoph Freund
    Christoph Freund    Premium Member
    The company name is only visible to registered members.
    Hallo Isabelle,

    ja genau, die von Uwe angegebene Funktion strtotime() ist genau das was du brauchst.
    Mit dieser Funktion wandelst du erst Datum1 und Datum2 in Zeichenketten um und kannst sie dann vergleichen.
    Dabei musst du nur beachten, dass die amerikanische Schreibweise des Datums Monat/Tag/Jahr verwendet wird.


    <?php
    $date1 = strtotime('07/23/2008');
    $date2 = strtotime('07/28/2008');

    if($date1 > $date2) { ... }
    ?>

    Hoffe ich konnte dir helfen.

    Viel Spaß
    Christoph
  • User photo
    Isabelle Diez
    The company name is only visible to registered members.
    Hallo Uwe

    Merci für den Link. Aber irgendwie verstehe ich das nicht ganz.

    Gibt es noch ein Beispiel dafür?

    Gruss
    Isa
  • User photo
    Isabelle Diez
    The company name is only visible to registered members.
    Merci Christoph!

    Das hat mir gefehlt um auf die Sprünge zu kommen.

    Versuche ich gleich.

    Gruss
    Isa
  • René Oelke
    René Oelke    Premium Member
    The company name is only visible to registered members.
    Achtung bei Verwendung von lokaler Schreibweise bei Zeitangaben. Diese ist abhängig vom Betriebssystem und deren Zeitzonen-Einstellung. Wenn man diese in PHP nicht explizit setzt, kann sie auf mehreren System unterschiedlich sein.

    Besser ist die Verwendung von Timestamps.

    http://de3.php.net/time
    http://de3.php.net/mktime

    Folgendes müßte funktioniere (habe ich nicht extra getest):

    <?php
    $dayInSeconds = 1 * 24 * 60 * 60;

    $date1 = mktime(0, 0, 0, 8, 23, 2008); // statt mktime() kann man auch ein Datum als Timestamp aus einer DB selektieren
    $date2 = time();

    if($date2 < ($date1 + $dayInSeconds)) {
    // do something ...
    }
    ?>

    Wer mehr mit Datum und Zeitangaben mehr machen will, sollte sich mal das Zend-Framework anschauen. Da gibt es eine komfortable Klasse zum Umgang mit Zeitangabe:

    http://framework.zend.com/manual/en/zend.date.basic.html#zen...
  • User photo
    Martin Pakosch
    The company name is only visible to registered members.
    Die Lösung von René würde ich auch vorziehen... denn sie dürfte für die meisten Fälle reichen.

    Aber hier noch ein Hinweis:
    Wenn das System, Script (was auch immer) nur von Nutzern einer Zeitzone genutzt wird/werden kann (z.B. internes System), ist das alles unproblematisch. Sobald aber ein weltweiter Vergleich erfolgen muss in Abhängigkeit der Zeitzonen, müssen diese ggf. mit berücksichtigt werden, denn das Script nutzt sonst nur die Zeitzone des Servers. Da vielleicht die Funktion gmmktime() anschauen, falls nötig.