Konstanten für allgemeine Datumsfunktionen

Ü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).

Konstanten benutzen

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

Liste aller Konstanten

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

Selbst-definierte AUSGABE-Formate mit ISO

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.

Selbst-definierte AUSGABE-Formate, welche die PHP-date()-Formatdefinition verwenden

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