» Startseite
» Newsübersicht
» Kontakt
» Impressum

» Forum
» Gästebuch

» Einführung PHP
   » Anfang
   » Erste Schritte
   » Variablen
   » if-Anweisung
   » Log. Operatoren
   » Übung
   » Dateien
   » Schleifen
   » Array
   » Dateien Teil 2
   » Datum & Zeit
   » Mail Funktion
   » Sessions

» Einführung MySQL

PHP-Einfach.de

Counterdienst:
Digicount.de
Unser werbefreier Counter- und Statistikdienst

Datum und Uhrzeit

Oft ist es interessant zu wissen, wann etwas gespeichert wurde, deswegen unterstützt PHP auch Datums- und Uhrzeitangaben.

Das Datum und die Zeit werden von der Server Uhr abgelesen und können somit nicht von dem Anwender manipuliert werden, allerdings sollte die Server Uhr dann auch richtig gehen.

In PHP ermittelt man die Uhrzeit zuerst mit einem UNIX-Timestamp. Dieser beinhaltet alle Sekunden seit dem 1.1.1970 um 0:00 Uhr. Dadurch entsteht so ein Wert: 1175874867

Mit diesem Wert können wir noch nicht viel Anfangen, aber PHP darum um so mehr.

Aber zuerst brauchen wir den Timestamp, das geht so:
<?php
$timestamp = time();
?>
Mit dem Befehl time() ermitteln wir den aktuellen Timestamp und dieser wird in der Variable $timestamp gespeichert.

Jetzt gibt es die Funktion date(format, timestamp)

Um jetzt ein Datum auszugeben, wenden wir den Befehl date mal an:
<?php
$timestamp = time();
$datum = date("d.m.Y - H:i", $timestamp);
echo $datum;
?>
Das Ergebnis sieht so aus:
06.04.2007 - 17:54 Hier sind ein paar Formate die Ihr benutzen könnt.

Format Funktion Beispiel
d Tag des Monats, zweistellig 04, 15
j Tag des Monats 5, 23
m Nummer des Monats, zweistellig 05, 12
n Nummer des Monats 4, 11
y Jahr, zweistellig 98, 05
Y Jahr, vierstellig 1998, 2005
H Stunden im 24-Stunden-Format, zweistellig 04, 18
G Stunden im 24-Stunden-Format 4, 14
i Minuten, zweistellig 04, 32
s Sekunden, zweistellig 02, 55
w Wochentag in Zahlenwert 1, 5

Das sind die wichtigsten Formate, aber es gibt noch weitere Formate, die man aber eher selten benötigt.

Die Zeichen zwischen den Buchstaben (d.m.Y) dienen zur Trennung der Werte (Tag.Monat.Jahr), man kann diese auch weglassen bzw. ändern.

Ihr könntet das Datum auch so ermitteln:
<?php
$datum = date("d.m.Y - H:i");
echo $datum;
?>
Dabei wird immer vom aktuellen Timestamp ausgegangen, man kann aber auch den Timestamp in einer Datei, Variable bzw. in einer Datenbank abspeichern.
Diesen kann man später abfragen und dann ausgeben.

Wann wurde das geschrieben?

Manchmal möchte man wissen, vor wie vielen Minuten, Stunden oder auch Tagen etwas geschrieben wurde.

Man könnte jetzt denken, dies würde so gehen, aber das ist falsch:
<?php
$timestamp = "120";
$test = date("i", $timestamp);
echo $test;
?>
Hier bekommen wir als Ausgabe 02, weil 120 Sekunden 2 Minuten sind. Aber gebt dort anstatt eine 120 eine 10900 ein.
Das wären dann natürlich viel mehr als 2 Minuten (181 Min.), aber als Ausgabe erhalten wir 01.
Das kommt, weil PHP immer die Minuten für eine bestimmte Uhrzeit angibt, und das ist natürlich nicht richtig.

Deswegen brauchen wir für so etwas Mathe.

Wie wir wissen, hat 1 Minute 60 Sekunden, also teilen wir die Sekunden einfach durch 60.
<?php
$timestamp = "120";
echo round($timestamp / 60);
?>
Mit round lassen wir den Wert auf, bzw. abrunden.
Möchtet Ihr den Wert immer abrunden, so benutzt anstatt round einfach floor.

Heute ist Freitag

Manchmal möchte man ausgeben: Heute ist Freitag.

PHP selber kann nur die Wochentage in der englischen Schreibweise ausgeben, aber wir möchten ja die deutsche Schreibweise benutzen.

Deswegen erstellen wir als erstes ein Array, indem wir die ganzen Wochentagsnamen speichern:
<?php
$tage = array("Sonntag","Montag","Dienstag",
"Mittwoch","Donnerstag","Freitag","Samstag");
?>
Um jetzt den richtigen Tag auszugeben, verwenden wir so eine Ausgabe: $tage[Nummer]

Um die Nummer des Tages zu bekommen, benutzen wir wieder die Date-Funktion
<?php
$tag = date("w");
?>
Das Format w gibt uns den Wochentag zurück.
Ihr könnt dort natürlich auch den Timestamp zu einem bestimmten Zeitpunkt angeben.
Jetzt geben wir das einfach aus:
<?php
echo $tage[$tag]
?>


So kann man auch Monatsnamen ausgeben lassen, allerdings fängt ein Array bei 0 an zu Nummerieren, aber es gibt keinen Monat 0.
Darum müssen wir den Werten des Array die Monatszahl zuordnen:
<?php
$monate = array(
   1=>"Januar",
   2=>"Februar",
   3=>"März",
   4=>"April",
   5=>"Mai",
   6=>"Juni",
   7=>"Juli",
   8=>"August",
   9=>"September",
   10=>"Oktober",
   11=>"November",
   12=>"Dezember");
?>
Danach fragen wir die Zahl des Monats ab:
<?php
$monat = date("n");
?>
Dies geht mit dem Format n, zum Schluss lassen wir das wieder wie oben ausgeben:
<?php
echo $monate[$monat];
?>
Die Ausgabe wäre: April

Mit PHP können wir auch E-Mails verschicken.

Autor Andavos

News

Forum

Newsletter


© PHP-Einfach.de 2003 - 2007