这是我的PHP代码,它生成一个月份名称+年份的选择框。我有两个时间戳,我在循环中使用它来启动时间戳和结束时间戳。
现在问题是例如我的开始时间戳代表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>
答案 0 :(得分:27)
答案 1 :(得分: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