2011-07-01 37 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

相关问题