我有这个功能
function bookingMonthField() {
$str="";
for($i = 0; $i < 16; $i++) {
$time = mktime(0, 0, 0, date('n') + $i);
$str .="<option value=" . date('Yn', $time) . ">" . date('M Y', $time) . "</option>";
}
return $str;
}
除了返回2月和3月2日之外,它几乎可以正常工作:
<option value="20119">Sep 2011</option>
<option value="201110">Oct 2011</option>
<option value="201111">Nov 2011</option>
<option value="201112">Dec 2011</option>
<option value="20121">Jan 2012</option>
<option value="20123">Mar 2012</option>
<option value="20123">Mar 2012</option>
<option value="20124">Apr 2012</option>
<option value="20125">May 2012</option>
<option value="20126">Jun 2012</option>
<option value="20127">Jul 2012</option>
<option value="20128">Aug 2012</option>
<option value="20129">Sep 2012</option>
<option value="201210">Oct 2012</option>
<option value="201211">Nov 2012</option>
<option value="201212">Dec 2012</option>
为什么会发生这种情况?
答案 0 :(得分:2)
告诉你的剧本,你想要的是本月的第一天:
$time = mktime(0, 0, 0, date('n') + $i, 1);
或等待另一天,然后您的网站会自动修复:)
答案 1 :(得分:1)
mktime
将使用当天。今天是29日,所以2月被跳过了。相反,请指定当天的“1”。