html 月份的下拉列表
html dropdown list for month
请问为什么月份的下拉列表不是按照代码说的那样?下拉列表应该显示从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>
我猜这是因为一般来说一个月相当于30天,而今天是10月31日。从技术上讲,31-30 是 10 月 1 日,当您回显 date('F', strtotime('-1 month'))
.
时确实是 10 月
// 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>
完成
<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>
请问为什么月份的下拉列表不是按照代码说的那样?下拉列表应该显示从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>
我猜这是因为一般来说一个月相当于30天,而今天是10月31日。从技术上讲,31-30 是 10 月 1 日,当您回显 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>
完成
<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>