|
|
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).
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/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).
| Funktion/Eingabe | Beschreibung | Original Datum | Effekt/Ausgabe |
|---|---|---|---|
| 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/Zeit hat eine eindeutige Konstante in
Zend_Date. Alle durch Zend_Date
unterstützten Konstanten sind anbei aufgelistet.
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::DAY | Tag (als Zahl, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 (06) |
| Zend_Date::DAY_SHORT | Tag (als Zahl, eine oder zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 (6) |
| Zend_Date::WEEKDAY | Wochentag (Name des Tages, Lokalisiert, Vollständig) | 2009-02-06T14:53:27+01:00 | Freitag |
| Zend_Date::WEEKDAY_SHORT | Wochentag (Name des Tages, Lokalisiert, Abgekürzt, die ersten drei Zeichen) | 2009-02-06T14:53:27+01:00 | Fre für Freitag |
| Zend_Date::WEEKDAY_NAME | Wochentag (Name des Tages, Lokalisiert, Abgekürzt, die ersten zwei Zeichen) | 2009-02-06T14:53:27+01:00 | Fr für Freitag |
| Zend_Date::WEEKDAY_NARROW | Wochentag (Name des Tages, Lokalisiert, Abgekürzt, nur das erste Zeichen) | 2009-02-06T14:53:27+01:00 | F für Freitag |
| Zend_Date::WEEKDAY_DIGIT | Wochentag (0 = Sonntag, 6 = Samstag) | 2009-02-06T14:53:27+01:00 | 5 für Freitag |
| Zend_Date::WEEKDAY_8601 | Wochentag laut ISO 8601 (1 = Montag, 7 = Sonntag) | 2009-02-06T14:53:27+01:00 | 5 für Freitag |
| Zend_Date::DAY_OF_YEAR | Tag (als Zahl, eine oder zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 43 |
| Zend_Date::DAY_SUFFIX | Englischer Anhang für den Tag (st, nd, rd, th) | 2009-02-06T14:53:27+01:00 | th |
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::WEEK | Woche (als Zahl, 1-53) | 2009-02-06T14:53:27+01:00 | 7 |
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::MONTH_NAME | Monat (Name des Monats, Lokalisiert, Vollständig) | 2009-02-06T14:53:27+01:00 | Februar |
| Zend_Date::MONTH_NAME_SHORT | Monat (Name des Monats, Lokalisiert, Abgekürzt, drei Zeichen) | 2009-02-06T14:53:27+01:00 | Feb |
| Zend_Date::MONTH_NAME_NARROW | Monat (Name des Monats, Lokalisiert, Abgekürzt, ein Zeichen) | 2009-02-06T14:53:27+01:00 | F |
| Zend_Date::MONTH | Monat (Zahl des Monats, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 (02) |
| Zend_Date::MONTH_SHORT | Monat (Zahl des Monats, ein oder zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 (2) |
| Zend_Date::MONTH_DAYS | Anzahl an Tagen für diesen Monat (Zahl) | 2009-02-06T14:53:27+01:00 | 28 |
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::YEAR | Jahr (Zahl) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 |
| Zend_Date::YEAR_8601 | Jahr laut ISO 8601 (Zahl) | 2009-02-06T14:53:27+01:00 | 2009 |
| Zend_Date::YEAR_SHORT | Jahr (Zahl, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 |
| Zend_Date::YEAR_SHORT_8601 | Jahr laut ISO 8601 (Zahl, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 09 |
| Zend_Date::LEAPYEAR | Ist das Jahr ein Schaltjahr? (TRUE oder FALSE) | 2009-02-06T14:53:27+01:00 | FALSE |
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::HOUR | Stunde (00-23, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 14 |
| Zend_Date::HOUR_SHORT | Stunde (0-23, eine oder zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 14 |
| Zend_Date::HOUR_SHORT_AM | Stunde (1-12, eine oder zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2 |
| Zend_Date::HOUR_AM | Stunde (01-12, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 02 |
| Zend_Date::MINUTE | Minute (00-59, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 |
| Zend_Date::MINUTE_SHORT | Minute (0-59, eine oder zwei Ziffern) | 2009-02-06T14:03:27+01:00 | 2009-02-06T14:03:27+01:00 |
| Zend_Date::SECOND | Sekunde (00-59, zwei Ziffern) | 2009-02-06T14:53:27+01:00 | 2009-02-06T14:53:27+01:00 |
| Zend_Date::SECOND_SHORT | Sekunde (0-59, eine oder zwei Ziffern) | 2009-02-06T14:53:07+01:00 | 2009-02-06T14:53:07+01:00 |
| Zend_Date::MILLISECOND | Millisekunde (theoretisch unendlich) | 2009-02-06T14:53:27.20546 | 2009-02-06T14:53:27.20546 |
| Zend_Date::MERIDIEM | Tageszeit (vormittag/nachmittag) | 2009-02-06T14:53:27+01:00 | nachmittag |
| Zend_Date::SWATCH | Swatch Internet Zeit | 2009-02-06T14:53:27+01:00 | 620 |
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::TIMEZONE | Name der Zeitzone (Zeichenkette, Abgekürzt) | 2009-02-06T14:53:27+01:00 | CET |
| Zend_Date::TIMEZONE_NAME | Name der Zeitzone (Zeichenkette, Vollständig) | 2009-02-06T14:53:27+01:00 | Europe/Paris |
| Zend_Date::TIMEZONE_SECS | Differenz der Zeitzone zu GMT in Sekunden (Integer) | 2009-02-06T14:53:27+01:00 | 3600 Sekunden zu GMT |
| Zend_Date::GMT_DIFF | Differenz zu GMT in Sekunden (Zeichenkette) | 2009-02-06T14:53:27+01:00 | +0100 |
| Zend_Date::GMT_DIFF_SEP | Differenz zu GMT in Sekunden (Zeichenkette, geteilt) | 2009-02-06T14:53:27+01:00 | +01:00 |
| Zend_Date::DAYLIGHT | Sommerzeit oder Winterzeit ? (TRUE oder FALSE) | 2009-02-06T14:53:27+01:00 | FALSE |
| Konstante | Beschreibung | Datum | Betroffener Teil/Beispiel |
|---|---|---|---|
| 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/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 | Betroffener Teil/Beispiel |
|---|---|---|---|
| Zend_Date::ERA | Epoche (Zeichenkette, Lokalisiert, Abgekürzt) | 2009-02-06T14:53:27+01:00 | AD (Anno Domini) |
| Zend_Date::ERA_NAME | Epoche (Zeichenkette, Lokalisiert, Vollständig) | 2009-02-06T14: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 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 erstelen. 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 welche PHP's date() Formatdefinition verwenden).
Example #1 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");
| Konstante | Beschreibung | Passt am besten zu | Betroffener Teil/Beispiel |
|---|---|---|---|
| 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 |
Note:
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.
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 PHP 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.
Example #2 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");
Die folgende Tabelle zeit die Liste der PHP date Formatdefinitionen mit Ihrem Äquivalent
in Zend_Date Konstanten und der im CLDR/ISO äquivalenten Formatdefintion. In den meisten
Fällen wenn das CLDR/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 | Betroffener Teil/Beispiel |
|---|---|---|---|---|
| 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 das 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 oder 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 | z oder zz oder zzz | 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-12T15: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 |
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 18616).

