如何在PHP中显示最近10个月的列表


How to show list of last 10 month in PHP?

我想在我的项目中显示当前月份的过去 10 个月。我试过这个

    <?php
$months = array();
for ($i=1; $i<11; $i++) {
 $months[$i."_".date('Y', strtotime('-'.$i.' Month'))] = date('M', strtotime('-'.$i.' Month'));
}

它给了我

   Array
(
    [1_2016] => Jun
    [2_2016] => May
    [3_2016] => Apr
    [4_2016] => Mar
    [5_2016] => Feb
    [6_2016] => Jan
    [7_2015] => Dec
    [8_2015] => Nov
    [9_2015] => Oct
    [10_2015] => Sep
)

但是index month不就是错的,我想要这个

Array
(
    [6_2016] => Jun
    [5_2016] => May
    [4_2016] => Apr
    [3_2016] => Mar
    [2_2016] => Feb
    [1_2016] => Jan
    [12_2015] => Dec
    [11_2015] => Nov
    [10_2015] => Oct
    [9_2015] => Sep
)

我认为这就是你想要的

$dateArray = array();
for ($i=1; $i<=10; $i++) { 
    $dateArray[date('m_Y', strtotime("-$i month"))] = date('M', strtotime("-$i month"));
} 
print_r($dateArray);

输出

Array
(
    [06_2016] => Jun
    [05_2016] => May
    [04_2016] => Apr
    [03_2016] => Mar
    [02_2016] => Feb
    [01_2016] => Jan
    [12_2015] => Dec
    [11_2015] => Nov
    [10_2015] => Oct
    [09_2015] => Sep
)

而不是$i

$months[$i."_".

您需要使用date函数,例如

$months[date('n',strtotime('-'.$i.' Month'))."_"

只需使用日期格式和月份减去时间

$months = array();
for ($i=1; $i<11; $i++) {
 $months[date('n_Y', strtotime('-'.$i.' Month'))] = date('M_Y', strtotime('-'.$i.' Month'));
}
var_dump($months);

日期格式

Y - 一年的四位数表示

n - 月份的数字表示形式,不带前导零(1 到 12)

M - 一个月的简短文本表示(三个字母)