2011-07-01 38 views
5

這裏是我的PHP代碼,它會生成月份名稱+ Year的選擇框。我在開始時間戳和結束時間戳的循環中使用了2個時間戳。在每次迭代中添加一個月的時間戳

現在問題是,例如,如果我的開始時間戳代表01.07.2011 和在循環中,我只添加30天到時間戳,然後我選擇框7月將顯示兩次。 如果我添加31日,那麼可能會有一個月會滑雪。

是否有任何可用的功能,可以爲每個迭代添加確切的一個月?

<select name="checkinMonth" class="selectform" id="checkinMonth" > 
<?php 
    for($month = $checkin_timestamp; $month <= $checkout_timestamp; $month += 30*60*60*24) { 
     $checkin_month = getdate($month); 
     $option_text = strftime("%B %Y",$month); 
     $option_value = strftime("%Y%m", $month); 
     $selected = ($checkin_selected == $option_value ? "selected='selected'" : ""); 

     echo "<option value='{$option_value}' {$selected}>{$option_text}</option>"; 
    } 
?> 
</select> 

回答

4

如果你看中的東西更詳細的,試試這個:

$tmp_year = date("Y", $month); 
$tmp_month = date("m", $month); 
$tmp_day = date("d", $month); 
$tmp_hour = date("H", $month); 
$tmp_min = date("m", $month); 
$tmp_sec = date("s", $month); 

$month = mktime($tmp_hour, $tmp_minute, $tmp_second, $tmp_month + 1, $tmp_day, $tmp_year); 

我想你有把它放在它自己的功能中,使它適合那個for-clause:P

相關問題