Le formatage de l'objet DateTime, le respect de paramètres Régionaux::getDefault()
J'ai un objet DateTime qui je suis actuellement à la mise en forme via
$mytime->format("D d.m.Y")
Qui me donne exactement le format que j'ai besoin de:
Aut 5.3.2012
Le seul point manquant est la langue correcte. J'ai besoin de la traduction en allemand de Tue
(Tuesday
), qui est Die
(Dienstag
).
Cela me donne le droit à des paramètres régionaux
Locale::getDefault()
Mais je ne sais pas comment dire DateTime::format
de l'utiliser.
N'est-il pas un moyen de faire quelque chose comme:
$mytime->format("D d.m.Y", \Locale::getDefault());
- prendre soin: strftime("%a %e à.%l.%Y", \paramètres Régionaux::getDefault()) ne fonctionne pas (au moins, ici, sur ma configuration), depuis getDefault() renvoie "de" au lieu de "de_DE"...
- Le second paramètre de la fonction strftime devrait être le timestamp, pas un jeu de paramètres régionaux.
- Oh, désolé. Complètement clair que cela ne fonctionne pas. Ce que je voulais dire, c'est que la fonction setlocale(LC_TIME, \paramètres Régionaux::getDefault()) ne fonctionne pas (dans mon application symfony2)
Vous devez vous connecter pour publier un commentaire.
C'est parce que
format
ne fait pas attention aux paramètres régionaux. Vous devez utiliserstrftime
à la place.Par exemple:
This method does not use locales. All output is in English.
$datetime = new DateTime('1920-01-01'); setLocale(LC_TIME|LC_CTYPE, $locale_based_on_user_profile); return strftime($format, $datetime->format('U'));
setlocale()
, comme:French
,German
ouPolish
.Vous pouvez utiliser le Intl extension de format de la date. Il va formater les dates/heures selon le code choisi, ou vous pouvez remplacer qu'avec
IntlDateFormatter::setPattern()
.Un quicky exemple d'utilisation d'un motif personnalisé, pour votre format de sortie désiré, pourrait ressembler.
Dont les résultats suivants (pour aujourd'hui, au moins).
Modifier: Ahh boo! Répondu à une question très ancienne, car certains commentaires heurté il de la liste! Au moins l'Intl option est mentionné maintenant.
yum install php-intl
apachectl reload