Den Umweg werde ich nicht gehen. Ich habe es jetzt mit der format-Methode umgesetzt (vom Grundsatz wie #13). Muss dafür im schlechtesten Fall aber 2 IntlDateFormatter-Objekte erstellen. Der Gedanke war nachdem ich hellbringrs Beispiel gesehen hatte, mittels formatObject immer auf die selbe Instanz zugreifen zu können.
Die 2 Instanzen sind aber alles andere als ein Problem, wie der nachfolgende Ausschnitt aus einen Test zeigt.
.
.
Die Masse der Zeit (3,3ms) wird beim Erstaufruf benötigt, da die Klasse ja erst geladen werden muss.
Edit: protestix
Ich möchte nicht die Zeitzone vom Formatter übernehmen, sondern die des DareTime-Objektes, welches ich formatiteren will.
Und für exotische Ausgaben brauche ich den Kalendertyp IntlDateFormatter::TRADITIONAL, welchen ich per formatObject() nirgens unterbringen kann.
Die 2 Instanzen sind aber alles andere als ein Problem, wie der nachfolgende Ausschnitt aus einen Test zeigt.
.
IntlDateFormatter exists: language "fr" | 214 | $strDate = dt::create('14.1.2015')->formatL('l, d F Y','fr'); $t->checkEqual($strDate,'mercredi, 14 janvier 2015'); |
[3.3 ms] 'mercredi, 14 janvier 2015' |
Ok |
format are IntlDateFormatter Constants | 218 | $strDate = dt::create('14.1.2015')->formatL('FULL+SHORT','pl'); $t->checkEqual($strDate,'środa, 14 stycznia 2015 00:00'); |
[0.6 ms] 'środa, 14 stycznia 2015 00:00' |
Ok |
format with buddhist calendar | 222 | $strDate = dt::create('14.1.2015 16:45')->formatL('FULL+SHORT','es_ES@calendar=buddhist') ; $t->checkContains($strDate,'miércoles,14,enero,2558 ,B E,16:45'); |
[1.0 ms] 'miércoles, 14 de enero de 2558 BE 16:45' |
Ok |
Die Masse der Zeit (3,3ms) wird beim Erstaufruf benötigt, da die Klasse ja erst geladen werden muss.
Edit: protestix
Ich möchte nicht die Zeitzone vom Formatter übernehmen, sondern die des DareTime-Objektes, welches ich formatiteren will.
Und für exotische Ausgaben brauche ich den Kalendertyp IntlDateFormatter::TRADITIONAL, welchen ich per formatObject() nirgens unterbringen kann.
Kommentar