php, codeschnipsel, php beispielen
[Tutorial] Arbeiten mit Unix-Zeitstempeln, date(), strftime() und mktime

Main
Home
Fachbücher
Support Forum
Webmaster News
Script Newsletter
Kontakt
Script Installation
Php
Php Tutorials
Impressum

Userbereich
kostenlos Anmelden
Memberliste

Script Datenbank
Script Archiv
Script Top 20
Screenshots
Testberichte

Suche

 
Script Seite



Unsere Php Scripts
Counter Script
Umfrage Script
Bilder Upload Script
Terminverwaltung
Simple PHP Forum

Script Mods
phpBB Adsense Mod

Tools und Generatoren
.htpasswd Generatoren
md5 Generatoren
base64 Generatoren
ICQ Generatoren
Colorpicker
Unix timestamp Tool
TLD Liste
Webkatalog Verzeichnis

Partner
Sprüche Treff

Hosterplus.de
Bekommen Sie Webspace, Domains und Rootserver mit ...


clichehosting.c...
Webhoster mit recht einfachen Angeboten.


weitere Anbieter

RSS Webmaster Newsfeed von Php Space RSS Webmaster Newsfeed
RSS Script Newsfeed von Php Space RSS Script Newsfeed

Statistik
2 Gäste Online
0 Member Online
187 Besucher heute
1299 Besucher gestern
 

[Tutorial] Arbeiten mit Unix-Zeitstempeln, date(), strftime() und mktime

Sie befinden sich: Home > Webmaster News

Arbeiten mit time()

Mit $zeit = time weisen Sie der Variablen $zeit den aktuellen Unix-Zeitstempel zu. Wenn Sie die Zeit nun mit echo $zeit ausgeben wollen, so werden Sie nur eine Zahl sehen, z.B. so: 1219947989

time() beinhaltet die Anzahl der Sekunden, die seit dem 1.1.1970 vergangen sind. Der Zeitstempel 0 bedeutet also den 1.1.1970 0:00:00 Uhr Greenwich Zeit bzw. 1:00:00 Uhr deutscher Zeit. Der Zeitstempel 1 bedeutet 1.1.1970 0:00:01 Uhr usw.

PHP stellt sehr mächtige Befehle zur Verfügung, mit denen man die time()-Zahl in ein lesbares Format umwandeln kann. Hier wollen wir die wichtigsten vorstellen:

Die allgemeine Formel lautet date('string'[,Unix-Zeitstempel]);

Wenn wir den zweiten Parameter weglassen, so wird der aktuelle Zeitstempel genommen.

Quelltext: PHP
1

<?php
$zeit 
time();
// Beide Ausgaben sind gleich
echo date('j'); 
echo 
date('j',$zeit);
?> 


Die date-Anweisung nimmt immer nur einen einzigen Parameter entgegen und liefert den passenden Wert. date() nutzt man daher oft dann, wenn das Ergebnis im Programm weiterbenutzt werden soll. Dazu ein Beispiel:

date('w') liefert den Tag der Woche als Zahl: 0 ist Sonntag, 1 ist Montag usw.

Will man also den aktuellen Wochentag-namen ausgeben, so kann man den von date('w') gelieferten Wert als Index eines Arrays mit den Wochentagen benutzen:

Quelltext: PHP
1

<?php
$wochentage 
array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
$tagnummer date('w');
echo 
$wochentage[$tagnummer];
?> 


Braucht man hingegen den Namen des Wochentages in englischer Sprache, so kann man das direkt ausgeben lassen: date('l') - ein kleiner Buchstabe L - liefert Sunday, Monday, Tuesday usw.

Hier eine Liste der wichtigsten Steuerbuchstaben für date():

d - Tag des Monats, zwei Ziffern mit führenden Null (z.B. "05")
j - Tag des Monats ohne führenden Null ("1" bis "31")
w - Tag der Woche, Ausgabe als Zahl ("0" für Sonntag)
H - Stunde im 24-Stunden-Format mit führender Null ("00" bis "23")
G - Stunde im 24-Stunden-Format ohne führende Null ("0" bis "23")
i - Minuten ("00" bis "59")
m - Monat mit führender Null ("01" bis "12)
n - Monat ohne führende Null ("1" bis "12)
s - Sekunden ("00" bis "59")
t - Anzahl der Tage des Monats ("28" bis "31")
Y - Jahr, vierstellige Ausgabe (z.B. "2001")
y - Jahr, zweistellige Ausgabe (z.B. "01")
z - Tag im Jahr ("0" bis "365")


Die restlichen Codes werden weniger genutzt:

a - amerik. Tageszeit, klein geschrieben ("am" oder "pm")
A - amerik. Tageszeit, groß geschrieben ("AM" oder "PM")
D - Tag der Woche mit drei Buchstaben in englisch (z.B. "Mon")
l (kleines L) - Tag der Woche, ausgeschrieben ("Monday")
F - Ausgeschriebener Monat (z.B. "December")
h - Stunde im 12-Stunden-Format mit führender Null ("01" bis "12")
g - Stunde im 12-Stunden-Format ohne führende Null ("1" bis "12")
M - Monat mit drei Buchstaben (z.B. "Dec")
S - Suffix der engl. Ordnungszahlen (z. B. "st","nd")
U - Sekunden seit Beginn der Unix-Epoche
Z - Offset der Zeitzone gegenüber GMT in Minuten (z.B. "-43 200")
B - Swatch-Internet-Zeit
I - Sommerzeit ("1" bei Sommerzeit, sonst "0")
L - Schaltjahr ("1" bei Schaltjahr, sonst "0")
T - Zeitzoneneinstellung des Servers (z.B. "CET" für "Central European Time")


Will man ein Datum formatiert ausgeben, so gibt es hierfür eine spezielle Funktion:

strftime("Formatierungsstring", ["Unix-Timestamp"])

In die Klammern schreiben wir eine Zeichenkette mit beliebigem Inhalt und Platzhaltern für Zeitinformationen. Anders als bei date bestehen die Platzhalter aus dem Prozentzeichen und einem Buchstaben, wobei dummerweise gleiche Funktionen nicht immer mit dem gleichen Buchstaben wie im date-Befehl erreicht werden.

Auch hier kann man als zweiten Parameter einen Unix-Zeitstempel einfügen. Wird dieser weggelassen, dann arbeitet strftime mit der aktuellen Unix-Zeit.

Angenommen dass jetzt grade der 6.7.2008 12:13:14 ist, dann bekommen wir mit
echo strftime("%d") die Ausgabe 07 (Tag des Monats mit führender 0),
echo strftime("%H") die Ausgabe 12 (Stunde 00 bis 23),
echo strftime("%M") die Ausgabe 13 (Minuten)


Andere Zeichen werden unverändert ausgegeben, sodass man mit
echo ("%Y-%m-%d %H:%M:%S" ) die Ausgabe 2008-07-06 12:13:14 erhält.

Hier die verfügbaren Platzhalter:

%a - Wochentag, abgekürzt (z.B. "Mon")
%A - Wochentag, ausgeschrieben (z.B. "Monday")
%b - Monat, abgekürzt (z.B. "Jan")
%B - Monat, ausgeschrieben (z.B. "January")
%c - Vollständige Datum- und Zeitausgabe nach lokalen Einstellungen
%d - Tag des Monats, mit führender Null ("01" bis "31")
%H - Stunde im 24-Stunden-Format ("00" bis "23")
%I - Stunde im 12-Stunden-Format ("01" bis "12")
%j - Tag im Jahr ("001" bis "366")
%m - Monat, ohne fürhrende Null ("1" bis "12)
%M - Minuten ("0" bis "59")
%p - amerikanische Tageszeit ("am" oder "pm")
%S - Sekunden ("0" bis "59")
%U - Wochennummer, erste Woche beginnt am ersten Sonntag im Jahr
%W - Wochennummer, erste Woche beginnt am ersten Montag im Jahr
%w - Wochentag als Zahl ("0" für Sonntag bis "6" für Samstag)
%x - Vollständige Datumsausgabe nach lokalen Einstellungen
%X - Vollständige Zeitausgabe nach lokalen Einstellungen
%y - Jahr, zweistellig (z.B. "98")
%Y - Jahr, vierstellig (z.B. "1998")
%Z - Differenz zur Zeitzone in Sekunden




Wenn man auf die Funktionalitäten, die date()- und strftime() bieten zurückgreifen möchte, muss man eine datum/Uhrzeit-Kombination, die in einem anderen Format vorliegen, in das timestamp-Format umwandeln. Dies erledigt die Anweisung mktime()

mktime() erwartet 6 Parameter und liefert einen Zeitstempel. Hier ein Beispiel:

Quelltext: PHP
1

<?php
$tag 
14;
$monat 7;
$jahr 2008;
$stunde 14;
$minute 49;
$sekunde 35;

$zeitstempel mktime($stunde,$minute,$sekunde,$monat,$tag,$jahr);

?> 


Achten Sie darauf, dass der Monat vor dem Tag stehen muss.

(Quelle: Wolfgang ), Eingetragen am 28.August.2008



Ähnliche News

08.02.2009 - PHP 5.2.9RC1 veröffentlicht
25.07.2008 - [Tutorial] Benutzung von Cookies [3 von 4]
25.07.2008 - [Tutorial] Benutzung von Cookies [2 von 4]
25.07.2008 - [Tutorial] Arbeiten mit Arrays [2 von 2]
21.07.2008 - [Code] Grade oder Ungrade

Letzten Webmaster News

18.12.2009 - Neues Update für die PHP 5.2.x Reihe Online
23.11.2009 - Neue PHP-Version 5.3.1 verfügbar
19.11.2009 - Empfehlenswerte Artikel - Sicherheitslücken W...
18.11.2009 - Wir suchen einen oder mehre Gastautoren
10.11.2009 - Interessante Artikel zum Trinitäts-Operator, ...





 
 
Webhosting Service | Board Features