date — Как я могу получить французские названия месяцев в PHP в этом существующем скрипте?

Я использую следующий код ниже, чтобы создать выпадающий список следующих 12 месяцев, начиная с этого месяца:

$year=date("Y");
//Current Month
$month = date('m');
$dateObj   = DateTime::createFromFormat('!m', $month);
$month0 = $dateObj->format('F');
$monthHTML .= "<option value='$month/$year'>$month0 $year</option>";
//next 11 months
for ($i=1; $i<=11; $i++) {
$month = date('m', strtotime('first day of +'.$i.' month'));
if($month==01) {
$year++;
}
$dateObj   = DateTime::createFromFormat('!m', $month);
${"month".$i} = $dateObj->format('F');
$monthHTML .= "<option value='$month/$year'>".${"month".$i}." $year</option>";
}

это создает вывод, как это:

<select id="default-calendar-month" name="default-month">
<option value='01/2018'>January 2018</option><option value='02/2018'>February 2018</option><option value='03/2018'>March 2018</option><option value='04/2018'>April 2018</option><option value='05/2018'>May 2018</option><option value='06/2018'>June 2018</option><option value='07/2018'>July 2018</option><option value='08/2018'>August 2018</option><option value='09/2018'>September 2018</option><option value='10/2018'>October 2018</option><option value='11/2018'>November 2018</option><option value='12/2018'>December 2018</option></select>

Я хотел бы использовать тот же код, чтобы получить список на французском языке, то есть как …

<select id="default-calendar-month" name="default-month">
<option value='01/2018'>Janvier 2018</option><option value='02/2018'>Fevrier 2018</option>

И так далее.

Глядя на другие ответы (как этот), Я попытался добавить:

setlocale(LC_TIME, "fr_FR");

И изменение «strtotime» на «strftime», но это исключает эти две ошибки. Что я делаю неправильно?

Warning: date() expects parameter 2 to be long, string given in /home/mysite/public_html/add.php on line 31

Fatal error: Call to a member function format() on a non-object in /home/mysite/public_html/add.php on line 36

0

Решение

<?
setlocale (LC_TIME, 'fr_FR.utf8','fra');
echo (strftime("%A %d %B"));

?>

это еще один подход, который я нашел где-то в SO

$date = str_replace(
array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'),
$date
);
2

Другие решения

Изменить язык, используя setlocale() (setlocale doc) и использовать strftime() (strftime doc)

<?php
setlocale(LC_ALL, 'fr_FR');

echo strftime("%A");
?>
0

По вопросам рекламы [email protected]