下拉列表不适用于日,月和年

时间:2013-09-16 10:01:37

标签: php html date drop-down-menu

<?php   
        $month = array();
        for ( $i=1; $i<13; $i++ ) {
        $month = date('m', mktime(0,0,0,$i,2,2000));
        $sel = ( $i == date('n') ? ' selected="selected"' : '');
        $options1[] = "<option  value=\"{$month}\" {$sel}>{$month}</option>";
}
        $options_list1 = join("", $options1);
        echo "<select name=\"month\" >{$options_list1}</select>";
        for ( $j=1; $j<32; $j++ ) {
        $theday = date('d', mktime(0,0,0,0,$j,2000));
        $sel = ( $j == date('d') ? ' selected="selected"' : '');
        $options2[] = "<option  value=\"{$theday}\" {$sel}>{$theday}</option>";
}
        $options_list2 = join("\r\n", $options2);
        echo "<select name=\"day\" >{$options_list2}</select>";
        for ( $k=1960; $k<2016; $k++ ) {
        $theyear = date('Y', mktime(0,0,0,0,2,$k));
        $sel1 = ( $k == date('Y') ? ' selected="selected"' : '');
        $options3[] = "<option  value=\"{$theyear}\" {$sel1}>{$theyear}</option>";
}
        $options_list3 = join("\r\n", $options3);
        echo "<select name=\"day\" >{$options_list3}</select>";
?>

它是一天,一个月和一年的下拉菜单。日和月工作正常,但一年不是,一年我的循环工作不正常,今天是2013年,它选择2012年。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

你上一年因为你没有将正确的参数传递给mktime。正如docs state for the month parameter

  

相对于上一年末的月份数。   值1到12表示一年中的正常日历月   题。 小于1的值(包括负值)引用   上一年的月份是相反的顺序,所以0是12月,-1是   11月等大于12的值参考适当的月份   在接下来的一年中。

所以改变:

$theyear = date('Y', mktime(0,0,0,0,2,$k));

$theyear = date('Y', mktime(0,0,0,1,2,$k));

你没事。

<强> codepad example