web-dev-qa-db-fra.com

PHP date - donne le nom des mois dans la langue locale

J'ai cette partie de la fonction qui me donne le nom des mois en anglais. Comment puis-je les traduire dans ma langue (le serbe)?

$month_name = date('F', mktime(0, 0, 0, $i));
17
Sasha

Vous devriez utiliser setlocale() :

setlocale(LC_TIME, 'fr_FR');
$month_name = date('F', mktime(0, 0, 0, $i));

Dans ce cas, il serait réglé en français. Pour votre cas, cela devrait être l’un des suivants:

  1. sr_BA - Serbe (Monténégro) 
  2. sr_CS - Serbe (Serbie)
  3. sr_ME - Serbe (Serbie et Monténégro)
24
MAXIM

Vous devez utiliser setlocale() et strftime() :

setlocale(LC_TIME, 'sr_CS');
$month_name = strftime('%B', mktime(0, 0, 0, $i));
16

Il est judicieux de passer l'encodage lors de la définition des paramètres régionaux:

 <?php    
 date_default_timezone_set('Europe/Belgrade');
 setlocale(LC_TIME, array('sr_CS.UTF-8', 'sr.UTF-8'));
2
bodi0

Voici un exemple avec IntlDateFormatter

$format = new IntlDateFormatter('sr_CS', IntlDateFormatter::NONE, 
              IntlDateFormatter::NONE, NULL, NULL, "MMM");
$monthName = datefmt_format($format, mktime(0, 0, 0, $i));
2
Super Chafouin