Programmer's Reference Guide
| Erstellen von Datumswerten |
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).
| 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.
| 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 |
| Konstante | Beschreibung | Datum | Ergebnis |
|---|---|---|---|
| Zend_Date::WEEK | Woche (als Zahl, 1-53) | 2009-02-13T14:53:27+01:00 | 8 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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.
| 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).
Beispiel #1 Selbstdefinition von ISO Formaten
- $locale = new Zend_Locale('de_AT');
- $date = new Zend_Date(1234567890, false, $locale);
| 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 | Millisekunden des aktuellen Tages | Zend_Date::MILLISECOND | 20563 |
Hinweis: 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.
Beispiel #2 Selbstdefinierte Formate mit PHP Bezeichnern
- $locale = new Zend_Locale('de_AT');
- $date = new Zend_Date(1234567890, false, $locale);
- // Ausgabe zum Beispiel 'Februar 16, 2007, 3:36 vorm.'
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.
| 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 |
| Erstellen von Datumswerten |
Add A Comment
Please do not report issues via comments; use the ZF Issue Tracker.
If you have a JIRA/Crowd account, we suggest you login first before commenting.

Comments
this is a pain to read...
please re-arrange these columns properly
thanks
How can I get in this format?
Very strange!
Please fix this table... it can't be so hard!
@Maiclorn: You can get it, using ->toString of the Zend_Date object and giving it a String like "yyyy-MM-dd HH:mm:ss"
This constant actually outputs "04/10/88".
I know how to output what i want (by to string or something) but i want to use DATE_SHORT, as i'll have to use multi-languages (and i dont want to do such a thing:
if(Locale =='my_locale') {
//perform $date->toString()
}
else{
echo $date->get(Zend_Date::TIME_SHORT);
}
Thanks