PHP 获得下个月的问题

PHP get next month issue

我正在尝试在 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");

输出为:Januar(一月)、Januar(一月)、Februar(二月)。我想不通这个问题。

使用这个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 ) ) );

?>

输出

output picture

我建议放弃 strtotime 并使用 php dateTime class。

$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

当前月份是一月。此输出将是 "February March"