Я пытаюсь получить текущий, следующий и следующий месяц по php.
Это мой текущий php:
setlocale(LC_TIME, "de_DE.utf8");
$thismonth = strftime("%B");
$nextmonth = strftime( '%B', strtotime( '+1 month', mktime( 0, 0, 0, $month, 1, $year ) ) );
$overnextmonth = strftime( '%B', strtotime( '+2 month', mktime( 0, 0, 0, $month, 1, $year ) ) );
Название месяца должно быть на немецком языке, поэтому я использую setlocale(LC_TIME, "de_DE.utf8");
,
Выходные данные: январь (январь), январь (январь), февраль (февраль). Я не могу понять проблему.
использовать этот setlocale (LC_TIME,"de_DE");
это будет работать
<?php
setlocale (LC_TIME,"de_DE");
echo $thismonth = strftime("%B");
echo $nextmonth = strftime( '%B', strtotime( '+1 month', mktime( 0, 0, 0, 1, 1, 2017 ) ) );
echo $overnextmonth = strftime( '%B', strtotime( '+2 month', mktime( 0, 0, 0, 2, 1, 2017 ) ) );
?>
выход
Я предлагаю отойти от strtotime и использовать класс php dateTime.
$date = new DateTime();
$date->add(new DateInterval('P1M')); // <-- adds 1 month to the current
echo $date->format('F') . "\n"; // it's now January so it outputs February
$date->add(new DateInterval('P1M'));
echo $date->format('F') . "\n"; // adds one more (total 2) months from original
Текущий месяц январь. Этот выходной будет «февраль март»