如何使用PHP显示以当前月份开始的月份?

How Display Month which is Start with Current Month Using PHP?

我想显示当年的所有月份,但它必须从当前月份开始,如下所示。

我需要如果当前月份 October 和年份 2019 那么选项列表应该以 2019-10 开头然后所有重命名月份与当前年份如下。

输出

<select>
            <option value="">SELECT MONTH</option>
            <option value="2019-10">October-2019</option>     
            <option value="2019-11">November-2019</option>     
            <option value="2019-12">December-2019</option>     
            <option value="2019-01">January-2019</option>     
            <option value="2019-02">February-2019</option>     
            <option value="2019-03">March-2019</option>     
            <option value="2019-04">April-2019</option>     
            <option value="2019-05">May-2019</option>     
            <option value="2019-06">June-2019</option>     
            <option value="2019-07">July-2019</option>     
            <option value="2019-08">August-2019</option>     
            <option value="2019-09">September-2019</option>     
    </select>

用这个PHP代码你可以得到current_month

date_default_timezone_get();
$month= date('Y-m', time());

那么您只需要按正确的顺序在 'select' 标签中填写选项

使用日期时间 class。创建数组如下:

$dt = date_create('first Day of this Month 00:00');  //start
$valueCaption = [];
$numberOptions = 5;
for($i=0;$i<$numberOptions;$i++){
  $valueCaption[$dt->format('Y-m')] = $dt->format('F-Y');
  $dt->modify('+1 Month');
}

returns 数组 $valueCaption 如何

array (
  '2019-10' => "October-2019",
  '2019-11' => "November-2019",
  '2019-12' => "December-2019",
  '2020-01' => "January-2020",
  '2020-02' => "February-2020",
)

在使用 foreach ($valueCaption as $value => $caption) 输出时使用此数组来创建选项。

它正在工作,并根据我的需要提供准确的输出。

<select>
    <option value="">SELECT MONTH</option>
    <?php
    for ($i = 0; $i < 12; $i++) 
    {
        $getMonth = strtotime(sprintf('%d months', $i));   
        $monthLabel = date('F', $getMonth)."-".date("Y");
        $monthval = date("Y")."-".date('m', $getMonth); ?>
        <option value="<?php echo $monthval; ?>"><?php echo $monthLabel; ?></option>
    <?php } 
    ?>
</select>