Code-Schnipsel: Datum manipulieren

Datumsfunktion im Projekt aktiv nutzen

Obwohl es zum Rüstzeug eines PHP-Programmierers zählen sollte, stellt das Datum doch immer wieder eine Hürde dar. Das liegt vielleicht daran, dass es verschiedene Wege gibt, wie man zum Datum kommt und Mühe hat, sich auf seinen eigenen Weg festzulegen oder einfach unsicher ist, wie man besser fährt - mit dem Timestamp oder mit dem Befehl date.

Es geht aber manchmal auch nicht um das aktuelle Datum, sondern darum, das bekannte Datum zu verändern. Das kann zum Beispiel interessant sein, wenn man ausgehend vom aktuellen Zeitpunkt eine Frist in die Zukunft setzt wie etwa bei Auktionen oder bei Handlungen, die später erfolgen sollen.

Datum eruieren und verlängern mit PHP

<?php
$timestamp = time();
echo $timestamp."<br />";
echo date ("YmdHis", $timestamp)."<br />";
$timestamp += (10 * 24 * 60 * 60);
echo $timestamp."<br />";
$datum_neu = date ("YmdHis", $timestamp);
echo $datum_neu;
 ?>

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 Falle 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.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel