# Konstanten für generelle Datums Funktionen

Wo auch immer eine `Zend_Date` Methode einen `$parts` Parameter besitzt, kann eine der nachfolgenden Konstanten als Argument für diesen Parameter benutzt werden, um einen speziellen Teil des Datums auszuwählen, oder um anzuzeigen das ein bestimmtes Datumsformat benutzt werden oder gewünscht ist (z.B. RFC 822).

## Konstanten benutzen

Zum Beispiel kann die Konstante `Zend_Date::HOUR` in den anbei 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 der Einheit die involviert ist 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).

### 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.

### 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

### 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

### 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

### 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`

### 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

### 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`

### 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

Auf `Zend_Date::DATES` sollte speziell geachtet werden, da dieser Formatbezeichner eine besondere Bedeutung innerhalb von `Zend_Date` als Eingabe-Formatbezeichner. 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.

### 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 auch ein selbst-definiertes Format erstellt werden, mit Hilfe der unten engeführten ISO Formatsbezeichner. Die folgenden Beispiele zeigen die Verwendung der Konstanten dieser Tabelle um selbst-definierte ISO Formate zu erstellen. Die Länge des Formats ist unlimitiert. Auch die mehrfache Verwendung von Format Konstanten ist gestattet.

Die akzeptierten Formatbezeichner können vom ISO Format zu PHP's date Format geändert werden, wenn man damit mehr Erfahrung hat. Wie auch immer, nicht alle Format welche in der ISO Norm definiert sind, werden durch PHP's date Formatbezeichner unterstützt. Die Verwendung der `Zend_Date::setOptions(array('format_type' => 'php'))` Methode 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 PHP's date() Formatzeichen).

### 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");

### Konstanten für ISO 8601 Datums Ausgaben

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 | Different 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 | Millisekunde | `Zend_Date::MILLISECOND` | 20563

Es muß beachtet werden das 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 kalkuliert 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 PHP's date() Formatdefinition verwenden

Wenn man mit PHP's date Formatdefinition vertrauter ist als mit den ISO Formatdefinitionen, dann kann man durch Verwendung der Methode `Zend_Date::setOptions(array('format_type' => 'php'))` das Wechseln von ISO Formatdefinition zu PHP `date()` Formatdefinition welche dann für alle `Zend_Date` Methoden verwendet werden wechseln. Danach müssen alle Format Parameter in PHP's `date()` Formatdefintion angegeben werden. Das PHP date Format vermisst 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 PHP's 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.

### 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 Datums Format und die Verwendung von Konstanten

Es ist wichtig anzumerken das 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.

### 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