Überall dort, wo eine Zend_Date
-Methode einen Parameter $parts
aufweist, kann eine der nachfolgenden Konstanten als Argument für diesen Parameter
benutzt werden, um einen speziellen Teil des Datums auszuwählen, oder um anzuzeigen, dass ein
bestimmtes Datumsformat benutzt werden soll oder gewünscht ist (z.B. RFC 822).
Zum Beispiel kann die Konstante Zend_Date::HOUR
in den unten
gezeigten Arten benutzt werden. Wenn mit Wochentagen, Kalendardaten, Stunden, Minuten,
Sekunden oder jedem anderen Datumsabschnitt gearbeitet wird, die in verschiedenen Teilen
der Welt unterschiedlich dargestellt werden, wird die Zeitzone des Objektes automatisch
benutzt, um den richtigen Wert zu berechnen, selbst wenn der interne Zeitpunkt der gleiche
ist für den gleichen Moment der Zeit, unabhängig davon, wo auf der Welt sich der Benutzer
befindet. Unabhängig von den verwendeten Einheiten muß die Ausgabe entweder als
GMT oder UTC ausgedrückt werden oder lokalisiert
anhand des Gebietsschemas. Die unten angeführte Beispielausgabe zeigt eine Lokalisierung
mit Europe/GMT+1 Stunden (z.B. Österreich, Deutschland, Frankreich).
Tabelle 49. Berechnungen, die Zend_Date::HOUR beinhalten
Methode | Beschreibung | Original Datum | Ergebnis |
---|---|---|---|
get(Zend_Date::HOUR) |
Ausgabe der Stunde | 2009-02-13T14:53:27+01:00 | 14 |
set(12, Zend_Date::HOUR) |
Setzen einer neuen Stunde | 2009-02-13T14:53:27+01:00 | 2009-02-13T12:53:27+01:00 |
add(12, Zend_Date::HOUR) |
Stunden hinzufügen | 2009-02-13T14:53:27+01:00 | 2009-02-14T02:53:27+01:00 |
sub(12, Zend_Date::HOUR) |
Stunden entfernen | 2009-02-13T14:53:27+01:00 | 2009-02-13T02:53:27+01:00 |
compare(12, Zend_Date::HOUR) |
Stunden vergleichen, gibt 0, 1 oder -1 zurück | 2009-02-13T14:53:27+01:00 | 1 (wenn Objekt > Argument) |
copy(Zend_Date::HOUR) |
Kopiert nur den Teil der Stunde | 2009-02-13T14:53:27+01:00 | 1970-01-01T14:00:00+01:00 |
equals(14, Zend_Date::HOUR) |
Stunden vergleichen, gibt TRUE oder
FALSE zurück
|
2009-02-13T14:53:27+01:00 | TRUE |
isEarlier(12, Zend_Date::HOUR) |
Vergleicht die Stunde, gibt TRUE oder
FALSE zurück
|
2009-02-13T14:53:27+01:00 | TRUE |
isLater(12, Zend_Date::HOUR) |
Vergleicht die Stunde, gibt TRUE oder
FALSE zurück
|
2009-02-13T14:53:27+01:00 | FALSE |
Jeder Teil von Datum oder Zeit hat eine eindeutige Konstante in
Zend_Date
. Alle durch Zend_Date
unterstützten Konstanten sind anbei aufgelistet.
Tabelle 50. Konstanten für den Tag
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::DAY |
Tag (als Zahl, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 13 |
Zend_Date::DAY_SHORT |
Tag (als Zahl, ein oder zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 6 |
Zend_Date::WEEKDAY |
Wochentag (Name des Tages, Lokalisiert, Vollständig) | 2009-02-13T14:53:27+01:00 | Freitag |
Zend_Date::WEEKDAY_SHORT |
Wochentag (Name des Tages, Lokalisiert, Abgekürzt, zwei bis vier Zeichen) | 2009-02-06T14:53:27+01:00 | Fre für Freitag |
Zend_Date::WEEKDAY_NAME |
Wochentag (Name des Tages, Lokalisiert, Abgekürzt, ein oder zwei Zeichen) | 2009-02-13T14:53:27+01:00 | Fr für Freitag |
Zend_Date::WEEKDAY_NARROW |
Wochentag (Name des Tages, Lokalisiert, Abgekürzt, ein Zeichen) | 2009-02-13T14:53:27+01:00 | F für Freitag |
Zend_Date::WEEKDAY_DIGIT |
Wochentag (0 = Sonntag, 6 = Samstag) | 2009-02-13T14:53:27+01:00 | 5 für Freitag |
Zend_Date::WEEKDAY_8601 |
Wochentag laut ISO 8601 (1 = Montag, 7 = Sonntag) | 2009-02-13T14:53:27+01:00 | 5 für Freitag |
Zend_Date::DAY_OF_YEAR |
Tag (als Zahl, ein oder zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 43 |
Zend_Date::DAY_SUFFIX |
Englischer Anhang für den Tag (st, nd, rd, th) | 2009-02-13T14:53:27+01:00 | th |
Tabelle 51. Konstanten für die Woche
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::WEEK |
Woche (als Zahl, 1-53) | 2009-02-13T14:53:27+01:00 | 8 |
Tabelle 52. Konstanten für das Monat
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::MONTH_NAME |
Monat (Name des Monats, Lokalisiert, Vollständig) | 2009-02-13T14:53:27+01:00 | Februar |
Zend_Date::MONTH_NAME_SHORT |
Monat (Name des Monats, Lokalisiert, Abgekürzt, zwei bis vier Zeichen) | 2009-02-13T14:53:27+01:00 | Feb |
Zend_Date::MONTH_NAME_NARROW |
Monat (Name des Monats, Lokalisiert, Abgekürzt, ein oder Zeichen) | 2009-02-13T14:53:27+01:00 | F |
Zend_Date::MONTH |
Monat (Zahl des Monats, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 02 |
Zend_Date::MONTH_SHORT |
Monat (Zahl des Monats, ein oder zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 2 |
Zend_Date::MONTH_DAYS |
Anzahl an Tagen für diesen Monat (Zahl) | 2009-02-13T14:53:27+01:00 | 28 |
Tabelle 53. Konstanten für das Jahr
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::YEAR |
Jahr (Zahl) | 2009-02-13T14:53:27+01:00 | 2009 |
Zend_Date::YEAR_8601 |
Jahr laut ISO 8601 (Zahl) | 2009-02-13T14:53:27+01:00 | 2009 |
Zend_Date::YEAR_SHORT |
Jahr (Zahl, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 09 |
Zend_Date::YEAR_SHORT_8601 |
Jahr laut ISO 8601 (Zahl, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 09 |
Zend_Date::LEAPYEAR |
Ist das Jahr ein Schaltjahr? (TRUE oder
FALSE )
|
2009-02-13T14:53:27+01:00 | FALSE |
Tabelle 54. Konstanten für die Zeit
Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
---|---|---|---|
Zend_Date::HOUR |
Stunde (00-23, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 14 |
Zend_Date::HOUR_SHORT |
Stunde (0-23, eine oder zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 14 |
Zend_Date::HOUR_SHORT_AM |
Stunde (1-12, eine oder zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 2 |
Zend_Date::HOUR_AM |
Stunde (01-12, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 02 |
Zend_Date::MINUTE |
Minute (00-59, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 53 |
Zend_Date::MINUTE_SHORT |
Minute (0-59, eine oder zwei Ziffern) | 2009-02-13T14:03:27+01:00 | 3 |
Zend_Date::SECOND |
Sekunde (00-59, zwei Ziffern) | 2009-02-13T14:53:27+01:00 | 27 |
Zend_Date::SECOND_SHORT |
Sekunde (0-59, eine oder zwei Ziffern) | 2009-02-13T14:53:07+01:00 | 7 |
Zend_Date::MILLISECOND |
Millisekunde (theoretisch unendlich) | 2009-02-06T14:53:27.20546 | 20546 |
Zend_Date::MERIDIEM |
Tageszeit (vormittag oder nachmittag) | 2009-02-13T14:53:27+01:00 | nachmittag |
Zend_Date::SWATCH |
Swatch Internet Zeit | 2009-02-13T14:53:27+01:00 | 620 |
Tabelle 55. Konstanten für die Zeitzone
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::TIMEZONE |
Name der Zeitzone (Zeichenkette, Abgekürzt) | 2009-02-13T14:53:27+01:00 | CET |
Zend_Date::TIMEZONE_NAME |
Name der Zeitzone (Zeichenkette, Vollständig) | 2009-02-13T14:53:27+01:00 | Europe/Paris |
Zend_Date::TIMEZONE_SECS |
Differenz der Zeitzone zu GMT in Sekunden (Integer) | 2009-02-13T14:53:27+01:00 | 3600 Sekunden zu GMT |
Zend_Date::GMT_DIFF |
Differenz zu GMT in Sekunden (Zeichenkette) | 2009-02-13T14:53:27+01:00 | +0100 |
Zend_Date::GMT_DIFF_SEP |
Differenz zu GMT in Sekunden (Zeichenkette, geteilt) | 2009-02-13T14:53:27+01:00 | +01:00 |
Zend_Date::DAYLIGHT |
Sommerzeit oder Winterzeit? (TRUE oder
FALSE )
|
2009-02-13T14:53:27+01:00 | FALSE |
Tabelle 56. Konstanten für Datumsformate (Formate beinhalten die Zeitzone)
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::ISO_8601 |
Datum laut ISO 8601 (Zeichenkette, Vollständig) | 2009-02-13T14:53:27+01:00 | 2009-02-13T14:53:27+01:00 |
Zend_Date::RFC_2822 |
Datum laut RFC 2822 (Zeichenkette) | 2009-02-13T14:53:27+01:00 | Fri, 13 Feb 2009 14:53:27 +0100 |
Zend_Date::TIMESTAMP |
Unix Zeit (Sekunden seit 1.1.1970, gemischt) | 2009-02-13T14:53:27+01:00 | 1234533207 |
Zend_Date::ATOM |
Datum laut ATOM (Zeichenkette) | 2009-02-13T14:53:27+01:00 | 2009-02-13T14:53:27+01:00 |
Zend_Date::COOKIE |
Datum für Cookies (Zeichenkette, für Cookies) | 2009-02-13T14:53:27+01:00 | Friday, 13-Feb-09 14:53:27 Europe/Paris |
Zend_Date::RFC_822 |
Datum laut RFC 822 (Zeichenkette) | 2009-02-13T14:53:27+01:00 | Fri, 13 Feb 09 14:53:27 +0100 |
Zend_Date::RFC_850 |
Datum laut RFC 850 (Zeichenkette) | 2009-02-13T14:53:27+01:00 | Friday, 13-Feb-09 14:53:27 Europe/Paris |
Zend_Date::RFC_1036 |
Datum laut RFC 1036 (Zeichenkette) | 2009-02-13T14:53:27+01:00 | Fri, 13 Feb 09 14:53:27 +0100 |
Zend_Date::RFC_1123 |
Datum laut RFC 1123 (Zeichenkette) | 2009-02-13T14:53:27+01:00 | Fri, 13 Feb 2009 14:53:27 +0100 |
Zend_Date::RSS |
Datum für RSS Feeds (Zeichenkette) | 2009-02-13T14:53:27+01:00 | Fri, 13 Feb 2009 14:53:27 +0100 |
Zend_Date::W3C |
Datum für HTML oder HTTP laut W3C (Zeichenkette) | 2009-02-13T14:53:27+01:00 | 2009-02-13T14:53:27+01:00 |
Beachten Sie vor allem Zend_Date::DATES
, da dieser Formatbezeichner
eine besondere Eigenschaft als Eingabe-Formatbezeichner
von Zend_Date
hat. Wenn dieser Bezeichner als
Eingabeformat für $part
benutzt wird, erlaubt diese Konstante die
beste und flexibelste Art, um viele ähnliche Datumsformate zu akzeptieren. Heuristik
wird benutzt, um Daten automatisch von einer Eingabe-Zeichenkette zu extrahieren und
dann einfache Fehler zu "beheben" (wenn vorhanden), wie zum Beispiel Jahre, Monate und
Tage wenn möglich.
Tabelle 57. Datums- und Zeitformate (Formate variieren laut Gebietsschema)
Konstante | Beschreibung | Datum | Ergebnis |
---|---|---|---|
Zend_Date::ERA |
Epoche (Zeichenkette, Lokalisiert, Abgekürzt) | 2009-02-13T14:53:27+01:00 | AD (Anno Domini) |
Zend_Date::ERA_NAME |
Epoche (Zeichenkette, Lokalisiert, Vollständig) | 2009-02-13T14:53:27+01:00 | Anno Domini (anno Domini) |
Zend_Date::DATES |
Standard Datum (Zeichenkette, Lokalisiert, Standard Wert). | 2009-02-13T14:53:27+01:00 | 13.02.2009 |
Zend_Date::DATE_FULL |
Vollständiges Datum (Zeichenkette, Lokalisiert, Vollständig) | 2009-02-13T14:53:27+01:00 | Freitag, 13. Februar 2009 |
Zend_Date::DATE_LONG |
Langes Datum (Zeichenkette, Lokalisiert, Lang) | 2009-02-13T14:53:27+01:00 | 13. Februar 2009 |
Zend_Date::DATE_MEDIUM |
Normales Datum (Zeichenkette, Lokalisiert, Normal) | 2009-02-13T14:53:27+01:00 | 13.02.2009 |
Zend_Date::DATE_SHORT |
Abgekürztes Datum (Zeichenkette, Lokalisiert, Abgekürzt) | 2009-02-13T14:53:27+01:00 | 13.02.09 |
Zend_Date::TIMES |
Standard Zeit (Zeichenkette, Lokalisiert, Standard Wert) | 2009-02-13T14:53:27+01:00 | 14:53:27 |
Zend_Date::TIME_FULL |
Vollständige Zeit (Zeichenkette, Lokalisiert, Vollständig) | 2009-02-13T14:53:27+01:00 | 14:53 Uhr CET |
Zend_Date::TIME_LONG |
Lange Zeit (Zeichenkette, Lokalisiert, Lang) | 2009-02-13T14:53:27+01:00 | 14:53:27 CET |
Zend_Date::TIME_MEDIUM |
Normale Zeit (Zeichenkette, Lokalisiert, Normal) | 2009-02-13T14:53:27+01:00 | 14:53:27 |
Zend_Date::TIME_SHORT |
Abgekürzte Zeit (Zeichenkette, Lokalisiert, Abgekürzt) | 2009-02-13T14:53:27+01:00 | 14:53 |
Zend_Date::DATETIME |
Standard Datum mit Zeit (String, Lokalisiert, Standardwert) | 2009-02-13T14:53:27+01:00 | 13.02.2009 14:53:27 |
Zend_Date::DATETIME_FULL |
Vollständiges Datum mit Zeit (String, Lokalisiert, Vollständig) | 2009-02-13T14:53:27+01:00 | Friday, 13. February 2009 14:53 Uhr CET |
Zend_Date::DATETIME_LONG |
Langes Datum mit Zeit (String, Lokalisiert, Lang) | 2009-02-13T14:53:27+01:00 | 13. February 2009 14:53:27 CET |
Zend_Date::DATETIME_MEDIUM |
Normales Datum mit Zeit (String, Lokalisiert, Normal) | 2009-02-13T14:53:27+01:00 | 13.02.2009 14:53:27 |
Zend_Date::DATETIME_SHORT |
Abgekürztes Datum mit Zeit (String, Lokalisiert, Abgekürzt) | 2009-02-13T14:53:27+01:00 | 13.02.09 14:53 |
Wenn ein Datumsformat benötigt wird, das oben nicht angeführt ist, kann mit Hilfe der unten aufgeführten ISO-Formatsbezeichner auch ein selbst-definiertes Format erstellt werden. Die folgenden Beispiele zeigen die Verwendung der Konstanten dieser Tabelle, um selbst-definierte ISO-Formate zu erstellen. Die Länge des Formats ist nicht limitiert. Auch die mehrfache Verwendung von Format-Konstanten ist gestattet.
Die akzeptierten Formatbezeichner können vom ISO-Format zu
date-Format von PHP geändert werden, wenn man damit mehr Erfahrung hat.
Wie auch immer, nicht alle Formate, welche in der ISO-Norm definiert
sind, werden durch PHPs date-Formatbezeichner unterstützt. Die
Verwendung der
Methode Zend_Date::setOptions(array('format_type' => 'php'))
erlaubt es, für alle Zend_Date
-Methoden, zwischen der
Unterstützung von ISO-Formatbezeichnern und PHP
date()
Typbezeichner zu wählen (siehe selbst definierte AUSGABE-Formate bei
Verwendung von PHPs date()-Formatzeichen).
Beispiel 170. Selbstdefinition von ISO-Formaten
$locale = new Zend_Locale('de_AT'); $date = new Zend_Date(1234567890, false, $locale); print $date->toString("'Epoche:GGGG='GGGG, ' Datum:yy.MMMM.dd'yy.MMMM.dd");
Tabelle 58. Konstanten für ISO 8601 Datumsausgaben
Konstante | Beschreibung | Passt am besten zu | Ergebnis |
---|---|---|---|
G | Epoche, Lokalisiert, Abgekürzt | Zend_Date::ERA |
AD |
GG | Epoche, Lokalisiert, Abgekürzt | Zend_Date::ERA |
AD |
GGG |
Epoche, Lokalisiert, Abgekürzt | Zend_Date::ERA |
AD |
GGGG |
Epoche, Lokalisiert, Vollständig | Zend_Date::ERA_NAME |
Anno Domini |
GGGGG |
Epoche, Lokalisiert, Abgekürzt | Zend_Date::ERA |
A |
y | Jahr, mindestens eine Ziffer | Zend_Date::YEAR |
9 |
yy | Jahr, mindestens zwei Ziffern | Zend_Date::YEAR_SHORT |
09 |
yyy | Jahr, mindestens drei Ziffern | Zend_Date::YEAR |
2009 |
yyyy | Jahr, mindestens vier Ziffern | Zend_Date::YEAR |
2009 |
yyyyy | Jahr, mindestens fünf Ziffern | Zend_Date::YEAR |
02009 |
Y | Jahr laut ISO 8601, mindestens eine Ziffer | Zend_Date::YEAR_8601 |
9 |
YY | Jahr laut ISO 8601, mindestens zwei Ziffern | Zend_Date::YEAR_SHORT_8601 |
09 |
YYY |
Jahr laut ISO 8601, mindestens drei Ziffern | Zend_Date::YEAR_8601 |
2009 |
YYYY |
Jahr laut ISO 8601, mindestens vier Ziffern | Zend_Date::YEAR_8601 |
2009 |
YYYYY |
Jahr laut ISO 8601, mindestens fünf Ziffern | Zend_Date::YEAR_8601 |
02009 |
M | Monat, eine oder zwei Ziffern | Zend_Date::MONTH_SHORT |
2 |
MM | Monat, zwei Ziffern | Zend_Date::MONTH |
02 |
MMM |
Monat, Lokalisiert, Abgekürzt | Zend_Date::MONTH_NAME_SHORT |
Feb |
MMMM |
Monat, Lokalisiert, Vollständig | Zend_Date::MONTH_NAME |
Februar |
MMMMM |
Monat, Lokalisiert, Abgekürzt, ein Zeichen | Zend_Date::MONTH_NAME_NARROW |
F |
w | Woche, eine oder zwei Ziffern | Zend_Date::WEEK |
5 |
ww | Woche, zwei Ziffern | Zend_Date::WEEK |
05 |
d | Monatstag, eine oder zwei Ziffern | Zend_Date::DAY_SHORT |
9 |
dd | Monatstag, zwei Ziffern | Zend_Date::DAY |
09 |
D | Tag des Jahres, eine, zwei oder drei Ziffern | Zend_Date::DAY_OF_YEAR |
7 |
DD | Tag des Jahres, zwei oder drei Ziffern | Zend_Date::DAY_OF_YEAR |
07 |
DDD |
Tag des Jahres, drei Ziffern | Zend_Date::DAY_OF_YEAR |
007 |
E | Wochentag, Lokalisiert, Abgekürzt, ein Zeichen | Zend_Date::WEEKDAY_NARROW |
M |
EE | Wochentag, Lokalisiert, Abgekürzt, zwei oder mehrere Zeichen | Zend_Date::WEEKDAY_NAME |
Mo |
EEE |
Wochentag, Lokalisiert, Abgekürzt, drei Zeichen | Zend_Date::WEEKDAY_SHORT |
Mon |
EEEE |
Wochentag, Lokalisiert, Vollständig | Zend_Date::WEEKDAY |
Montag |
EEEEE |
Wochentag, Lokalisiert, Abgekürzt, ein Zeichen | Zend_Date::WEEKDAY_NARROW |
M |
e | Nummer des Wochentages, eine Ziffer | Zend_Date::WEEKDAY_DIGIT |
4 |
ee | Nummer des Wochentages, zwei Ziffern | Zend_Date::WEEKDAY_NARROW |
04 |
a | Tageszeit, Lokalisiert | Zend_Date::MERIDIEM |
vorm. |
h | Stunde, (1-12), eine oder zwei Ziffern | Zend_Date::HOUR_SHORT_AM |
2 |
hh | Stunde, (01-12), zwei Ziffern | Zend_Date::HOUR_AM |
02 |
H | Stunde, (0-23), eine oder zwei Ziffern | Zend_Date::HOUR_SHORT |
2 |
HH | Stunde, (00-23), zwei Ziffern | Zend_Date::HOUR |
02 |
m | Minute, (0-59), eine oder zwei Ziffern | Zend_Date::MINUTE_SHORT |
2 |
mm | Minute, (00-59), zwei Ziffern | Zend_Date::MINUTE |
02 |
s | Sekunde, (0-59), eine oder zwei Ziffern | Zend_Date::SECOND_SHORT |
2 |
ss | Sekunde, (00-59), zwei Ziffern | Zend_Date::SECOND |
02 |
S | Millisekunde | Zend_Date::MILLISECOND |
20536 |
z | Zeitzone, Lokalisiert, Abgekürzt | Zend_Date::TIMEZONE |
CET |
zz | Zeitzone, Lokalisiert, Abgekürzt | Zend_Date::TIMEZONE |
CET |
zzz | Zeitzone, Lokalisiert, Abgekürzt | Zend_Date::TIMEZONE |
CET |
zzzz | Zeitzone, Lokalisiert, Vollständig | Zend_Date::TIMEZONE_NAME |
Europe/Paris |
Z | Differenz der Zeitzone | Zend_Date::GMT_DIFF |
+0100 |
ZZ | Differenz der Zeitzone | Zend_Date::GMT_DIFF |
+0100 |
ZZZ |
Differenz der Zeitzone | Zend_Date::GMT_DIFF |
+0100 |
ZZZZ |
Differenz der Zeitzone, geteilt | Zend_Date::GMT_DIFF_SEP |
+01:00 |
A | Millisekunden des aktuellen Tages | Zend_Date::MILLISECOND |
20563 |
Anmerkung
Es muß beachtet werden, dass sich das Standard-ISO-Format vom PHP-Format unterscheidet, was irritierend sein kann, wenn man es vorher noch nie verwendet hat. Speziell die Formatbezeichner für Jahr und Minute werden oft nicht auf die erwartete Art und Weise verwendet.
Für das Jahr gibt es zwei vorhandene Bezeichner die oft vertauscht werden. Der Y Bezeichner für das ISO-Jahr und den y Bezeichner für das wirkliche Jahr. Der Unterschied ist klein aber signifikant. Y berechnet das ISO-Jahr, welches oft für Kalender-Formate verwendet wird. Zum Beispiel der 31. Dezember 2007. Das wirkliche Jahr ist 2007, aber es ist der erste Tag der ersten Woche, der Woche 1, des Jahres 2008. Deswegen erhält man, wenn man 'dd.MM.yyyy' verwendet den '31.Dezember.2007', aber wenn man 'dd.MM.YYYY' verwendet den '31.Dezember.2008'. Wie man sieht, ist das kein Fehler, sondern ein erwartetes Verhalten basierend auf den verwendeten Bezeichnern.
Für die Minute ist der Unterschied nicht so groß. ISO verwendet den Bezeichner m für die Minute, anders als PHP, welches i verwendet. Wenn man also keine Minute erhält, dann sollte man sein Format darauf prüfen, ob der richtige Bezeichner verwendet wurde.
Wenn man mit der PHP-date-Formatdefinition vertrauter ist als mit den
ISO-Formatdefinitionen, dann kann man durch Verwendung der Methode
Zend_Date::setOptions(array('format_type' => 'php'))
von der ISO-Formatdefinition zur PHP
date()
-Formatdefinition wechseln, welche dann für alle
Zend_Date
-Methoden verwendet werden. Danach müssen alle
Format-Parameter in PHPs
date()
-Formatdefintion angegeben werden. Dem
PHP-date-Format fehlen einige der Formate, welche durch
ISO unterstützt werden und umgekehrt. Wenn keine Erfahrung damit
besteht, sollte auf alle Fälle das ISO-Format genommen werden. Und
wenn Altlast-Code vorhanden ist, der das PHP-date-Format verwendet, kann
dieser entweder manuell in das ISO-Format konvertiert werden, indem
Zend_Locale_Format::convertPhpToIsoFormat()
verwendet wird, oder durch Verwendung von setOptions()
. Die
folgenden Beispiel zeigen die Verwendung der Konstanten anhand der unteren Tabelle für
die Erstellung von selbst-definierten Formaten.
Beispiel 171. Selbstdefinierte Formate mit PHP-Bezeichnern
$locale = new Zend_Locale('de_AT'); Zend_Date::setOptions(array('format_type' => 'php')); $date = new Zend_Date(1234567890, false, $locale); // Ausgabe zum Beispiel 'Februar 16, 2007, 3:36 vorm.' print $date->toString('F j, Y, g:i a'); print $date->toString("'Format:D M j G:i:s T Y='D M j G:i:s T Y");
PHP-Datumsformat und die Verwendung von Konstanten
Es ist wichtig anzumerken, dass die Konstanten von Zend_Date
die ISO-Schreibweise verwenden. Das bedeutet, wenn man für
Zend_Date
setzt, dass es die
PHP-Schreibweise verwenden soll, dann sollte man die Konstanten
von Zend_Date
nicht verwenden, sondern das gewünschte
Format manuell selbst definieren. Wenn man dieser Empfehlung nicht folgt, kann das
zu unerwarteten Ergebnissen führen.
Die folgende Tabelle zeigt die Liste der PHP-date-Formatdefinitionen
mit ihrem Äquivalent in Zend_Date
-Konstanten und der im
CLDR und ISO äquivalenten Formatdefintion. In den
meisten Fällen, wenn das CLDR und ISO-Format keine
entsprechende Formardefinition enthält, wird die PHP-Formatdefinition
nicht durch Zend_Locale_Format::convertPhpToIsoFormat()
geändert, und die Zend_Date
Methoden erkennen dann diese
"besonderen" PHP-Formatdefinitionen, selbst im standardmäßigen
"ISO"-Formatcode.
Tabelle 59. Konstanten für PHP-date-Ausgaben
Konstante | Beschreibung | Passt am besten zu | Nähestes Äquivalent zu CLDR | Ergebnis |
---|---|---|---|---|
d | Tag des Monats, zwei Ziffern | Zend_Date::DAY |
dd | 09 |
D | Tag der Woche, Lokalisiert, Abgekürzt, drei Zeichen | Zend_Date::WEEKDAY_SHORT |
EEE |
Mon |
j | Tag des Monats, eine oder zwei Ziffern | Zend_Date::DAY_SHORT |
d | 9 |
l (kleingeschriebenes L) | Tag der Woche, Lokalisiert, Vollständig | Zend_Date::WEEKDAY |
EEEE |
Montag |
N | Nummer des Wochentags, eine Ziffer | Zend_Date::WEEKDAY_8601 |
e | 4 |
S | Englische Anhänge für den Monatstag, zwei Zeichen | keine Entsprechung | keine Entsprechung | st |
w | Nummer des Wochentags, 0=Sonntag, 6=Samstag | Zend_Date::WEEKDAY_DIGIT |
keine Entsprechung | 4 |
z | Tag des Jahres, eine, zwei oder drei Ziffern | Zend_Date::DAY_OF_YEAR |
D | 7 |
W | Woche, eine oder zwei Ziffern | Zend_Date::WEEK |
w | 5 |
F | Monat, Lokalisiert, Vollständig | Zend_Date::MONTH_NAME |
MMMM |
Februar |
m | Monat, zwei Ziffern | Zend_Date::MONTH |
MM | 02 |
M | Monat, Lokalisiert, Abgekürzt | Zend_Date::MONTH_NAME_SHORT |
MMM |
Feb |
n | Monat, eine oder zwei Ziffern | Zend_Date::MONTH_SHORT |
M | 2 |
t | Anzahl der Tag des Monats, eine oder zwei Ziffern | Zend_Date::MONTH_DAYS |
keine Entsprechung | 30 |
L | Schaltjahr, Boolean | Zend_Date::LEAPYEAR |
keine Entsprechung | TRUE |
o | Jahr laut ISO 8601, mindestens vier Ziffern | Zend_Date::YEAR_8601 |
YYYY |
2009 |
Y | Jahr, mindestens vier Ziffern | Zend_Date::YEAR |
yyyy | 2009 |
y | Jahr, mindestens zwei Ziffern | Zend_Date::YEAR_SHORT |
yy | 09 |
a | Tageszeit, Lokalisiert | Zend_Date::MERIDIEM |
a (Ähnlich, aber meistens Großschreibung) | vorm. |
A | Tageszeit, Lokalisiert | Zend_Date::MERIDIEM |
a (Ähnlich, aber keine Garantie dass das Format Großgeschrieben ist) | VORM. |
B | Swatch Internet Zeit | Zend_Date::SWATCH |
keine Entsprechung | 1463 |
g | Stunde, (1-12), eine oder zwei Ziffern | Zend_Date::HOUR_SHORT_AM |
h | 2 |
G | Stunde, (0-23), eine oder zwei Ziffern | Zend_Date::HOUR_SHORT |
H | 2 |
h | Stunde, (01-12), zwei Ziffern | Zend_Date::HOUR_AM |
hh | 02 |
H | Stunde, (00-23), zwei Ziffern | Zend_Date::HOUR |
HH | 02 |
i | Minute, (00-59), zwei Ziffern | Zend_Date::MINUTE |
mm | 02 |
s | Sekunde, (00-59), zwei Ziffern | Zend_Date::SECOND |
ss | 02 |
e | Zeitzone, Lokalisiert, Vollständig | Zend_Date::TIMEZONE_NAME |
zzzz | Europe/Paris |
I | Tageslicht | Zend_Date::DAYLIGHT |
keine Entsprechung | 1 |
O | Differenz der Zeitzone | Zend_Date::GMT_DIFF |
Z, ZZ oder ZZZ
|
+0100 |
P | Differenz der Zeitzone, getrennt | Zend_Date::GMT_DIFF_SEP |
ZZZZ |
+01:00 |
T | Zeitzone, Lokalisiert, Abgekürzt | Zend_Date::TIMEZONE |
kann z oder zz oder zzz sein | CET |
Z | Abstand der Zeitzone in Sekunden | Zend_Date::TIMEZONE_SECS |
keine Entsprechung | 3600 |
c | Standard ISO Format Ausgabe | Zend_Date::ISO_8601 |
keine Entsprechung | 2004-02-13T15:19:21+00:00 |
r | Standard RFC 2822 Format Ausgabe | Zend_Date::RFC_2822 |
keine Entsprechung | Don, 21 Dec 2000 16:01:07 +0200 |
U | Unix Zeitpunkt | Zend_Date::TIMESTAMP |
keine Entsprechung | 15275422364 |