2013-08-01 5 views
0

이 달의 마지막 날에는이 코드가 현재 달에서 시작하여 12 개월을 모두 표시하는 데 문제가없는 것을 제외하고 계속 문제가 발생합니다. 그 달의 마지막 날에 나는 몇 달간 복제본을 얻었고 다른 것들은 전혀 보여주지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 감사.동적으로 월을 생성하는 PHP 드롭 다운 선택 함수

<select id="month" name="month"> 


<?php 

//lists months 

    for ($i = 0; $i <= 11; ++$i) 
     { 
      $time = strtotime(sprintf('+%d months', $i)); 
      $value = date('m', $time); 
      $label = date('F', $time); 

//if month is set stay on that month 

      if($month==$value) 
       { printf('<option value="%s" selected="selected">%s</option>' , $value, $label); 
       } 
      else 
       {printf('<option value="%s">%s</option>', $value, $label);} 
     } 

?> 

//first month shows instead of blank 

    $("#target option:first") 

</select> 
+0

$ month의 값은 어디에서 설정합니까? – Maximus2012

+0

다른 케이스에 대해 $ time에 대한 올바른 값을 얻고 있는지 확인할 수 있습니까? – Maximus2012

답변

1

현재 달 X 개월 후부터 한 달 이상 건너 뛰는 문제가 발생할 수 있습니다. 선택으로 대신

strtotime(sprintf('+%d months', $i)); 

strtotime(sprintf('first day of +%d month', $i)); 
0
<?php 

    function months($selctedMonth='january'){ 

     $months='<select name="month" size="1">'; 
     for ($i = 12; $i > 0; $i--) { 
      $time = strtotime(sprintf('-%d months', $i)); 
      $label = date('F', $time); 
      $selctedM = strtolower($selctedMonth) == strtolower($label) ? 'selected' : ''; 
      $months.="<option value='$label' $selctedM >$label</option>"; 
     } 
     $months.="</select>"; 
     return $months; 
    } 

    echo months(); 


?> 

기본적으로 사용해보십시오 월이 표시됩니다.

<?php echo months('march'); ?>으로 작성하면 march이 기본적으로 선택됩니다.