我想问一下为什么月份的下拉列表不符合代码所说的内容?下拉列表可以显示从9月到10月。
The screenshot image of the dropdown list
<select class="selectpicker" id="selectmonth" onchange="myFunction()">
<option value="<?php echo date('m', strtotime('-1 month')) ?>"><?php echo date('F', strtotime('-1 month')) ?></option>
<option value="<?php echo date('m', strtotime('-2 month')) ?>"><?php echo date('F', strtotime('-2 month')) ?></option>
<option value="<?php echo date('m', strtotime('-3 month')) ?>"><?php echo date('F', strtotime('-3 month')) ?></option>
<option value="<?php echo date('m', strtotime('-4 month')) ?>"><?php echo date('F', strtotime('-4 month')) ?></option>
<option value="<?php echo date('m', strtotime('-5 month')) ?>"><?php echo date('F', strtotime('-5 month')) ?></option>
<option value="<?php echo date('m', strtotime('-6 month')) ?>"><?php echo date('F', strtotime('-6 month')) ?></option>
<option value="<?php echo date('m', strtotime('-7 month')) ?>"><?php echo date('F', strtotime('-7 month')) ?></option>
<option value="<?php echo date('m', strtotime('-8 month')) ?>"><?php echo date('F', strtotime('-8 month'))?></option>
<option value="<?php echo date('m', strtotime('-9 month')) ?>"><?php echo date('F', strtotime('-9 month')) ?> </option>
<option value="<?php echo date('m', strtotime('-10 month')) ?>"><?php echo date('F', strtotime('-10 month')) ?> </option>
<option value="<?php echo date('m', strtotime('-11 month')) ?>"><?php echo date('F', strtotime('-11 month')) ?> </option>
<option value="<?php echo date('m', strtotime('-12 month')) ?>"><?php echo date('F', strtotime('-12 month')) ?> </option>
</select>
答案 0 :(得分:1)
我想这是因为月份相当于30天,今天是10月31日。从技术上讲,31-30是10月1日,实际上是10月,当你回应date('F', strtotime('-1 month'))
。
// while tested in http://sandbox.onlinephpfunctions.com/. Them seem to have Oct 31 as their system date
<?php echo date('F', strtotime('first day -1 month'));?> //Outputs: October
<?php echo date('F', strtotime('first day -2 month'));?> //Outputs: September
<?php echo date('F', strtotime('first day -3 month'));?> //Outputs: August
<select class="selectpicker" id="selectmonth" onchange="myFunction()">
<?php for($i=1;$i<13;$i++){ ?>
<option value="<?php echo date('m', strtotime("first day -$i month")) ?>"><?php echo date('F', strtotime("first day -$i month")) ?></option>
<?php }?>
</select>
<强>更新强> 当我浏览时,我发现跟随working solution:
<select class="selectpicker" id="selectmonth" onchange="myFunction()">
<?php for($i=1;$i<13;$i++){
$d=new DateTime('now');
$d->modify("first day +1 day -$i month");
?>
<option value="<?php echo $d->format('m') ?>"><?php echo $d->format('F') ?></option>
<?php }?>
</select>
答案 1 :(得分:1)
完成了
<select class="selectpicker" id="selectmonth" onchange="myFunction()">
<option value="<?php echo date("m",strtotime("-1 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-1 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-2 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-2 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-3 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-3 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-4 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-4 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-5 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-5 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-6 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-6 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-7 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-7 Months",strtotime(date('01-m-Y')))) ?></option>
<option value="<?php echo date("m",strtotime("-8 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-8 Months",strtotime(date('01-m-Y'))))?></option>
<option value="<?php echo date("m",strtotime("-9 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-9 Months",strtotime(date('01-m-Y')))) ?> </option>
<option value="<?php echo date("m",strtotime("-10 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-10 Months",strtotime(date('01-m-Y')))) ?> </option>
<option value="<?php echo date("m",strtotime("-11 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-11 Months",strtotime(date('01-m-Y')))) ?> </option>
<option value="<?php echo date("m",strtotime("-12 Months",strtotime(date('01-m-Y')))) ?>"><?php echo date("F",strtotime("-12 Months",strtotime(date('01-m-Y')))); ?> </option>
</select>