|
|
strftime (PHP 3, PHP 4 , PHP 5) strftime --
Formatiert eine Zeit-/Datumsangabe nach den lokalen Einstellungen
Beschreibung:string strftime ( string format [, int Timestamp])
Gibt einen String zurück, der den angegebenen Formatierungs-Merkmalen
entspricht. Dabei wird der gegebene Timestamp/
Zeitstempel oder - falls dieser fehlt - die momentane lokale Zeit benutzt.
Der Monats- und Wochentagsname wird entsprechend des per
setlocale() eingestellten Wertes gesetzt.
Nachfolgend die im Formatierungsstring gültigen / bekannten
Platzhalter:
%a - abgekürzter Name des Wochentages, abhängig von der
gesetzten Umgebung
%A - ausgeschriebener Name des Wochentages, abhängig von der
gesetzten Umgebung
%b - abgekürzter Name des Monats, abhängig von der gesetzten
Umgebung
%B - ausgeschriebener Name des Monats, abhängig von der
gesetzten Umgebung
%c - Wiedergabewerte für Datum und Zeit, abhängig von der
gesetzten Umgebung
%C - Jahrhundert (Jahr geteilt durch 100, gekürzt auf Integer,
Wertebereich 00 bis 99)
%d - Tag des Monats als Zahl (Bereich 01 bis 31)
%D - so wie %m/%d/%y
%e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird
ein Leerzeichen voran gestellt (Wertebereich ´ 1´ bis ´31´)
%g - wie %G, aber ohne Jahrhundert.
%G - Das vierstellige Jahr entsprechend der ISO Wochennummer (siehe %V).
Das gleiche Format und der gleiche Wert wie bei %Y. Besonderheit:
entspricht die ISO Wochennummer dem vorhergehenden oder folgenden
Jahr, wird dieses Jahr verwendet.
%h - so wie %b
%H - Stunde als Zahl im 24-Stunden-Format (Bereich 00 bis 23)
%I - Stunde als Zahl im 12-Stunden-Format (Bereich 01 bis 12)
%j - Tag des Jahres als Zahl (Bereich 001 bis 366)
%m - Monat als Zahl (Bereich 01 bis 12)
%M - Minute als Dezimal-Wert
%n - neue Zeile
%p - entweder `am' oder `pm' (abhängig von der gesetzten
Umgebung) oder die entsprechenden Zeichenketten der gesetzten
Umgebung
%r - Zeit im Format a.m. oder p.m.
%R - Zeit in der 24-Stunden-Formatierung
%S - Sekunden als Dezimal-Wert
%t - Tabulator
%T - aktuelle Zeit, genau wie %H:%M:%S
%u - Tag der Woche als Dezimal-Wert [1,7], dabei ist 1 der Montag.
| Warnung |
Sun Solaris scheint mit dem Sonntag als 1 zu starten,
obwohl ISO 9889:1999 (der aktuelle C Standard) klar
festlegt, dass es der Montag sein sollte.
|
%U - Nummer der Woche des aktuellen Jahres als Dezimal-Wert,
beginnend mit dem ersten Sonntag als erstem Tag der ersten Woche.
%V - Kalenderwoche (nach ISO 8601:1988) des aktuellen Jahres.
Als Dezimal-Zahl mit dem Wertebereich 01 bis 53, wobei die
Woche 01 die erste Woche mit mindestens 4 Tagen im aktuellen
Jahr ist. Die Woche beginnt montags (nicht sonntags). (Benutzen Sie
%G or %g für die Jahreskomponente, die der Wochennummer für den
gegebenen Timestamp entspricht.)
%w - Wochentag als Dezimal-Wert, Sonntag ist 0
%W - Nummer der Woche des aktuellen Jahres, beginnend mit dem
ersten Montag als erstem Tag der ersten Woche.
%x - bevorzugte Datumswiedergabe (ohne Zeit), abhängig von der
gesetzten Umgebung.
%X - bevorzugte Zeitwiedergabe (ohne Datum), abhängig von der
gesetzten Umgebung.
%y - Jahr als 2-stellige-Zahl (Bereich 00 bis 99)
%Y - Jahr als 4-stellige-Zahl inklusive des Jahrhunderts
%Z - Zeitzone, Name oder eine Abkürzung
%% - ein %-Zeichen
Anmerkung:
Es ist durchaus möglich, dass Ihre C-Bibliothek nicht alle angegebenen
Formatierungszeichen erkennt. In diesem Fall werden diese Zeichen von
der PHP-Funktion strftime() nicht unterstützt.
Zusätzlich unterstützen nicht alle Plattformen negative Werte eines
Timestamps, deshalb könnte der Wertebereich eines Datums durch den
Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. %e, %T,
%R und %D (und vielleicht noch weitere) und Zeitangaben vor dem
Jan 1, 1970 auf Windowssystemen, einigen
Linuxdisrtibutionen und einigen anderen Betriebssytemen nicht
funktionieren. Für Windowsbetriebssysteme finden Sie eine komplette
Übersicht der gültigen / bekannten Platzhalter im Formatierungsstring
auf dieser
MSDN Webseite.
Beispiel 1. strftime() locale Beispiel
<?php setlocale(LC_TIME, "C"); echo strftime("%A"); setlocale(LC_TIME, "fi_FI"); echo strftime(" in Finnish is %A,"); setlocale(LC_TIME, "fr_FR"); echo strftime(" in French %A and"); setlocale(LC_TIME, "de_DE"); echo strftime(" in German %A.\n"); ?>
|
|
Dieses Beispiel funktioniert nur, wenn auf Ihrem System die entsprechenden
Locale-Codes installiert sind.
Anmerkung:
%G und %V basieren auf ISO 8601:1988 Wochennummern und können unerwartete
(obwohl korrekte) Ergebnisse liefern, wenn Sie das Nummernsystem nicht
gründlich verstehen. Sehen Sie weiter oben bei %V nach und beachten Sie die
folgenden Beispiele.
Beispiel 2. ISO 8601:1988 Wochennummer Beispiel
<?php /* December 2002 / January 2003 ISOWk M Tu W Thu F Sa Su ----- ---------------------------- 51 16 17 18 19 20 21 22 52 23 24 25 26 27 28 29 1 30 31 1 2 3 4 5 2 6 7 8 9 10 11 12 3 13 14 15 16 17 18 19 */
// Ausgabe: 12/28/2002 - %V,%G,%Y = 52,2002,2002 echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";
// Ausgabe: 12/30/2002 - %V,%G,%Y = 1,2003,2002 echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";
// Ausgabe: 1/3/2003 - %V,%G,%Y = 1,2003,2003 echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";
// Ausgabe: 1/10/2003 - %V,%G,%Y = 2,2003,2003 echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";
/* December 2004 / January 2005 ISOWk M Tu W Thu F Sa Su ----- ---------------------------- 51 13 14 15 16 17 18 19 52 20 21 22 23 24 25 26 53 27 28 29 30 31 1 2 1 3 4 5 6 7 8 9 2 10 11 12 13 14 15 16 */
// Ausgabe: 12/23/2004 - %V,%G,%Y = 52,2004,2004 echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";
// Ausgabe: 12/31/2004 - %V,%G,%Y = 53,2004,2004 echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";
// Ausgabe: 1/2/2005 - %V,%G,%Y = 53,2004,2005 echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";
// Ausgabe: 1/3/2005 - %V,%G,%Y = 1,2005,2005 echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";
?>
|
|
Siehe auch setlocale(),
mktime() und die
Open Group Spezifikation von strftime().
|