Autres conseils

En fait, je ne pense pas que cela soit tout à fait possible sous PHP 5.2: - (

Du moins, pas avec ce qui est fourni avec / en PHP (Il existe des bibliothèques codées en PHP que vous pourriez utiliser, bien que, comme d'autres réponses le soulignent)


Cependant, avec PHP 5.3, vous avez la classe
IntlDateFormatter , qui fait exactement quoi tu veux:

  

Cette classe représente la date de l'USI   fonctionnalité de formatage. Il permet   les utilisateurs pour afficher les dates dans un localisé   formater ou analyser des chaînes de caractères en PHP   valeurs de date en utilisant des chaînes de modèle   et / ou des modèles en conserve.

Par exemple, en utilisant cette classe, comme ceci:

echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('zh-Hant-TW', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

echo IntlDateFormatter::create('en_US', IntlDateFormatter::FULL, IntlDateFormatter::FULL)->format(time(time())) . "\n";
echo IntlDateFormatter::create('en_US', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT)->format(time(time())) . "\n";

Vous obtiendrez:

dimanche 9 novembre 2008 23:54:47 GMT+00:00
9 nov. 2008 23:54
2008年11月9日星期日 下午11時54分47秒 GMT+00:00
2008/11/9 下午 11:54
Sunday, November 9, 2008 11:54:47 PM GMT+00:00
Nov 9, 2008 11:54 PM

Ce qui est plutôt joli, n'est-ce pas?

Malheureusement, PHP 5.3 n’a que quelques mois et n’est pas disponible sur de nombreux services d’hébergement ... Il faudra donc tester (et probablement corriger) cette application ...


Pensez-y: vous pouvez peut-être installer la extension int PECL sur PHP 5.2, et obtenir la même fonctionnalité ...

Si vous avez besoin d'un moyen plus simple que Zend_Date et IntlDateFormatter, essayez la fonction standard strftime dans php. Voici ce que j'ai fait pour que le russe fonctionne sous PHP 5.3 sur Ubuntu (les paramètres régionaux russes n'étaient pas installés).

Pour installer les paramètres régionaux

  1. cd / usr / share / locales
  2. sudo ./install-language_pack ru_RU
  3. sudo dpkg-reconfigure locales
  4. Redémarrez Apache

Ensuite, utilisez l'extrait de code PHP suivant:

setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime('%A', time());

Doit être imprimé le jour de la semaine d'aujourd'hui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top