Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datum- und Zeitfunktionen
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite PHP-Skripte
Seite PHP Befehlsreferenz
Seite PHP5 Praxisbuch
Seite Gratis-Videolektionen*
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

Seite Anbieterverzeichnis

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 



 

Zeitfunktionen




Ganz ähnlich wie mit dem Datum kann auch mit der Zeit gearbeitet werden. Die folgende Tabelle enthält eine Auflistung der wesentlichen Zeitfunktionen.

Funktione Beispiel Beschreibung
localtime ( [$tstamp [, is_associative]]) localtime() Ermittelt die lokalen Zeitwerte. Sollte der optionale Parameter is_associative auf 1 gesetzt werden, wird ein assoziatives array zurück geliefert, ansonsten ein indiziertes.
mktime($hour, $min, $sec, $month, $day, $year, $dst) mktime(0,0,0,1,1,2005) => 1104534000 Gibt den UNIX-Zeitstempel (Timestamp) für ein Datum zurück. Der Parameter $dst gibt an ob es sich um Sommerzeit (1) oder Winterzeit (0) handelt.
gmmktime($hour, $min, $sec, $month, $day, $year, $dst) gmmktime(0,0,0,1,1,2005) => 1104537600 Gibt den GMT-Zeitstempel (Timestamp) für ein Datum zurück. Der Parameter $dst gibt an ob es sich um Sommerzeit (1) oder Winterzeit (0) handelt.
time() time() => 1073770551 Gibt den UNIX-Zeitstempel sekundengenau zurück.
microtime() microtime() => 0.96976100 1073770614 Wie time(), aber die Genauigkeit liegt im Mikrosekundenbereich. Ist nicht unter Windows verfügbar.
strftime("format",$tstamp) strftime("%A") => Saturday Formatiert eine Zeitausgabe.
gettimeofday() print_r(gettimeofday()) => Array ( [sec] => 1073770692 [usec] => 849883 [minuteswest] => -60 [dsttime] => 1 ) Gibt die aktuelle Tageszeit zurück.
gmstrftime("format",$tstamp) gmstrftime("%A") => Saturday Wie strftime(), jedoch mit GMT als Zeitzone.



Einsatz von mktime()

Zahlreiche Datums- und Zeitfunktionen rechnen mit der internen Angabe des Unix-Zeitstempels. Diese Angabe stellt die Anzahl der Sekunden seit dem 01.01.1970 00:00 Uhr dar. Um nun eine solche Angabe für ein spezifisches Datum zu erhalten, setzen Sie mktime() ein. Wie wäre es mit dem Zeitstempel für 1.1.2004:


// Ausgabe 1072911600
echo mktime(0,0,0,1,1,2004);



Der letzte Tag eines Monats kann als der Tag "0" des nächsten Monats ausgedrückt werden. Jedes der folgenden Beispiele gibt die Zeichenkette "Letzter Tag im Feb. 2000 ist der 29." zurück.


$letzertag = mktime (0,0,0,3,0,2004);
// Letzter Tag im Feb. 2000 ist der 29.
echo strftime ("Letzter Tag im Feb. 2004 ist der %d.", $letzertag);





$lastday = mktime(0,0,0,4,-31,2004);
// Letzter Tag im Feb. 2004 ist der 29.
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $letzertag);




Datumsberechnungen

Manchmal müssen mit Daten Berechnungen vorgenommen werden. Die folgenden Beispiele zeigen, wie man das mit den gezeigten Funktionen leicht realisieren kann:


gestern = mktime(0,0,0,date("m"), date("d")-1, date("Y"));
$morgen = mktime(0,0,0,date("m"), date("d")+1, date("Y"));
$letztenmonat = mktime(0,0,0,date("m")-1, date("d"), date("Y"));
$naechstesjahr = mktime(0,0,0,date("m"), date("d"), date("Y")+1);

echo "Gestern: $gestern<br>";
echo "Morgen: $morgen<br>";
echo "Letzenmonat: $letztenmonat<br>";
echo "Nächstesjahr: $naechstesjahr<br>";




Ausgabe



Gestern: 1073689200
Morgen: 1073862000
Letzenmonat: 1071097200
Nächstesjahr: 1105398000



oder mit Hilfe von date formatiert:



echo "Gestern: ". date("d.M.Y",$gestern) . "<br>";
echo "Morgen: ". date("d.M.Y",$morgen) . "<br>";
echo "Letztenmonat: ". date("d.M.Y",$letztenmonat) . "<br>";
echo "Nächstesjahr: ". date("d.M.Y",$naechstesjahr) . "<br>";




Ausgabe



Gestern: 10.Jan.2004
Morgen: 12.Jan.2004
Letztenmonat: 11.Dec.2003
Nächstesjahr: 11.Jan.2005




Einsatz von localtime()

Die Funktion localtime() gibt entweder indiziertes oder assoziatives Array zurück, welches hinsichtlich seiner Struktur identisch ist mit dem des Funktionsaufrufs in C.


Beispiel - indiziertes Array



<pre>
<?php
print_r
(localtime());
?>
</pre>




Ausgabe



Array
(
    [0] => 4
    [1] => 35
    [2] => 23
    [3] => 10
    [4] => 0
    [5] => 104
    [6] => 6
    [7] => 9
    [8] => 0
)




Beispiel - assoziatives Array



<pre>
<?php
print_r
(localtime(mktime(0,0,0,10,1,2004),1));
?>
</pre>




Ausgabe



Array
(
    [tm_sec] => 0
    [tm_min] => 0
    [tm_hour] => 0
    [tm_mday] => 1
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 5
    [tm_yday] => 274
    [tm_isdst] => 1
)



Die Bezeichner der verschiedenen Schlüssel dieses assoziativen Arrays lauten:
. "tm_sec" - Sekunde
. "tm_min" - Minute
. "tm_hour" - Stunde
. "tm_mday" - Tag des Monats
. "tm_mon" - Monat des Jahres, beginnt bei 0 (Januar) endet bei 11 (Dezember)
. "tm_year" - Jahr seit 1900
. "tm_wday" - Tag der Woche
. "tm_yday" - Tag des Jahres
. "tm_isdst" - für das Datum ist die Sommerzeit zu berücksichtigen


Einsatz von strftime()

Die Funktion strftime() arbeitet ähnlich, wie date() und formatiert eine Datums- und Zeitangabe anhand einer Formatierungsanweisung. Sie sollten jedoch beachten, dass die strftime()-Parameter nur teilweise mit denen von date() übereinstimmen und in einigen Fällen eine völlig andere Bedeutung haben.

Symbol Rückgabewerte (Beispiele) Beschreibung
%a Mon bis Sun abgekürzter Name des Wochentages, abhängig von der gesetzten Umgebung.
%A Monday bis Sunday ausgeschriebener Name des Wochentages, abhängig von der gesetzten Umgebung.
%b Jan bis Dec abgekürzter Name des Monats, abhängig von der gesetzten Umgebung.
%B January bis December ausgeschriebener Name des Monats, abhängig von der gesetzten Umgebung
%c siehe setlocale() weiter unten Wiedergabewerte für Datum und Zeit, abhängig von der gesetzten Umgebung
%C 00 bis 99 Jahrhundert, Jahr geteilt durch 100, gekürzt auf Integer.
%d 01 bis 31 Tag des Monats als Zahl.
%e 1 bis 31 Tag des Monats als Dezimal-Wert, einstelligen Werten wird ein Leerzeichen voran gestellt.
%H 00 bis 23 Stunde als Zahl im 24-Stunden-Format.
%I (grosses i) 01 bis 12 Stunde als Zahl im 12-Stunden-Format.
%j 001 bis 366 Tag des Jahres als Zahl.
%m 01 bis 12 Monat als Zahl, ohne führende 0.
%M 00 bis 59 Minute als zweistelliger Dezimal-Wert.
%n - neue Zeile
%p am oder pm entweder am oder pm, abhängig von der gesetzten Umgebung.
%S 0 bis 59 Sekunden als Dezimal-Wert
%t - Tabulator
%U 00-06 Wochennummer im Jahr, startet die Zählung am ersten Sonntag.
%W 00-06 Wochennummer im Jahr, startet die Zählung am ersten Montag.
%w 0 (Sonntag) bis 6 (Samstag) Numerische Darstellung des Wochentags.
%x siehe setlocale() weiter unten Vollständige Datumsangabe entsprechend der lokalen Einstellungen.
%X siehe setlocale() weiter unten Vollständige Datumsangabe entsprechend der lokalen Einstellungen.
%y 04 Zweistellige Ausgabe der Jahreszahl
%Y 2004 Vierstellige Ausgabe der Jahreszahl
%Z -43200 bis 43200(entspricht: -12 / +12 Stunden) Offset der Zeitzone in Sekunden. Der Offset für Zeitzone West nach UTC ist immer negativ und für Zeitzone Ost nach UTC immer positiv.
%% % Prozentzeichen



Einsatz von setlocale()

Interessant ist an dieser Funktion, dass sich die Ausgabe mit Hilfe der Funktion setlocale() an die sprachlichen Besonderheiten einer bestimmten Region anpassen lassen.


Beispiel



<?php
echo strftime("%A auf Deutsch ");
setlocale(LC_TIME,'de_DE@euro''de_DE''de''ge');
echo 
strftime("%A");
?>




Ausgabe



Sunday auf Deutsch Sonntag



Wie Sie sehen stehen Ihnen diverse Kurzformen für die deutschsprachige Region zur Verfügung.

Die Funktion setlocale() hat folgenden Aufbau:

setlocale(category, localid);

Der Parameter category wird durch folgende Werte bestimmt:
. LC_ALL - für alle folgenden Werte
. LC_COLLATE - Wirkt auf Zeichenkettenvergleiche.
. LC_CTYPE - Wirkt auf die Zeichensetzung, beispielsweise in strtoupper().
. LC_MONETARY - Wirkt auf Währungsfunktionen wie localeconv().
. LC_NUMERIC - Bestimmt das Dezimal-Trennzeichen.
. LC_TIME - Wirkt auf Datums- und Zeitformatierungen mit strftime().

Als localid wird der ISO-Landescode angegeben, auf dessen Parameter die Ausgabe gesetzt werden sollen. Wird eine leer Zeichenkette genutzt, versucht PHP entsprechende Variablen in der Betriebssystem-Umgebung zu finden. Wird eine 0 angegeben, werden die aktuellen Einstellungen nicht geändert, dafür jedoch zurückgegeben. Die Funktion gibt FALSE zurück, wenn der lokale Code nicht implementiert wurde.


 


Datumsfunktionen
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de