月份的html下拉列表

时间:2016-10-31 03:34:25

标签: php html dropdown

我想问一下为什么月份的下拉列表不符合代码所说的内容?下拉列表可以显示从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>

2 个答案:

答案 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

Try this

<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>