Sie sind hier: Startseite -> PHP-Codeschnipsel -> Datum manipulieren

Code-Schnipsel: Datum manipulieren

Datum manipulieren

Obwohl es zum Rüstzeug eines PHP-Programmierers zählen sollte, stellt das Datum doch immer wieder eine Hürde dar. Nachstehend ein Bespiel für ein Skript, bei dem es darum gehen könnte, eine Zeitdifferenz zu berücksichtigen.

ergibt:

1513101382

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/vhosts/winkelb.com/httpdocs/index.php(171) : eval()'d code on line 6
20171212175622
1513965382

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/vhosts/winkelb.com/httpdocs/index.php(171) : eval()'d code on line 9
20171222175622
Im Beispiel gehen wir davon aus, dass das Datum in zehn Tagen eine relevante Größe darstellt. Ein praktisches Beispiel wäre ein Auktionshaus, in dem die Auktion nach genau zehn Daten abgeschlossen werden sollte und dieses Datum wird beim Anlegen der Auktion eingetragen.

Dazu braucht man drei Dinge: das aktuelle Datum, die manipulative Veränderung und das Ergebnis der Manipulation für die weitere Verarbeitung. Das aktuelle Datum erhält man in PHP sehr einfach über den time-Befehl. Die große Fall ist dabei, dass man time schreibt - da passiert nämlich gar nichts.

time() ergibt hingegen den aktuellen Timestamp, eine Kombination aus Datum und Uhrzeit im Unix-Zeitstempel (daher auch timestamp). Mit diesem Wert können viele nichts anfangen, gerade, wenn sie erst mit PHP zu arbeiten begonnen haben. Ich habe den Zeitstempel ausdrucken lassen (erster Wert) und für die zweite Zeile mit date ("YmdHis", $timestamp) dafür gesorgt, dass der Klassiker zum Einsatz kommt, denn YmdHis steht für

Y = Jahr
m = Monat
d = Tag
H = Stunde
i = Minute
s = Sekunde

20110819111111 würde also den 19. August 2011 um 11:11:11 Uhr bedeuten.

Nun haben wir die Ausgangsbasis und verstehen den Zeitstempel auch. Die Aufgabe bestand aber darin, zehn Tage vorauszudenken und daher wird die Variable $timestamp um 10 Tage ergo 10 x 24 Stunden x 60 Minuten x 60 Sekunden erhöht.

Das Ergebnis ist ein neuer timestamp, den wir wieder zwecks Verständnis mit date umformatieren und ausdrucken lassen. Diesen Zeitstempel kann man jetzt im Skript verwenden, um ihn in die Datenbank einzutragen. Mit einem automatischen Skript, zum Beispiel einem Cronjob, kann man vergleichen lassen, ob das eingetragene Datum schon erreicht wurde und wenn ja, dann wird die Auktion, um beim Beispiel zu bleiben, geschlossen.



Sie wollen den Artikel teilen?
bei Twitter teilen bei Facebook teilen Artikel per E-Mail empfehlen