我已经设法在AnyTime中拼凑了一些数据范围选择器的代码:
$(document).ready(function() {
$("#date_start").AnyTime_noPicker().removeAttr("disabled").AnyTime_picker({format:"%Y-%m-%d",earliest:new Date(2000,0,1,0,0,0)});
$("#date_end").AnyTime_noPicker().removeAttr("disabled").AnyTime_picker({format:"%Y-%m-%d",earliest:new Date(2000,0,1,0,0,0)});
var rangeFormat = "%Y-%m-%d";
var rangeConv = new AnyTime.Converter({format:rangeFormat});
var oneDay = 60*1*1000;
$("#date_start").change( function() {
var fromDay = rangeConv.parse($("#date_start").val()).getTime();
var ToDay = rangeConv.parse($("#date_end").val()).getTime();
if (fromDay > ToDay) {
var ninetyDaysLater = new Date(fromDay + oneDay);
$("#date_end").AnyTime_noPicker().removeAttr("disabled").val(rangeConv.format(ninetyDaysLater)).AnyTime_picker({
earliest: ninetyDaysLater,
format: rangeFormat
});
}
});
$("#date_end").change( function() {
var fromDay = rangeConv.parse($("#date_end").val()).getTime();
var ToDay = rangeConv.parse($("#date_start").val()).getTime();
if (fromDay < ToDay) {
var ninetyDaysLater = new Date(fromDay - oneDay);
$("#date_start").AnyTime_noPicker().removeAttr("disabled").val(rangeConv.format(ninetyDaysLater)).AnyTime_picker({
earliest: ninetyDaysLater,
format: rangeFormat
});
}
});
});
...具有以下HTML元素:
<label for="date_start">Start Date of Event</label>
<input type="text" name="date_start" value="" id="date_start" />
<label for="date_end">End Date of Event</label>
<input type="text" name="date_end" value="" id="date_end" />
然而,它给了我错误,我不知道为什么。
在其他网站和我能找到的少数教程中倾注了类似的代码,我看不出代码有什么问题。
当我点击第一个日期字段时,我遇到了一系列错误:
不是“%Y-%m-%d”格式
...在AnyTime本身的代码(anytime.5.0.1-1403131246.js)中,第971行出现两次,然后在同一文件中为同一行组合三个。单击第二个字段时出现相同的错误。但在那之后,代码开始起作用。
因为我无法在我的代码中隔离源代码,所以我只是不知道从哪里开始(我正在使用jQuery的学习模式)。
答案 0 :(得分:0)
最后,解决方案很简单;我不得不用字段填充字段。
在这种情况下:
&#34; DATE_START&#34; =日期(&#34; Y-m-d&#34;)
&#34; DATE_END&#34; =日期(&#34; Y-m-d&#34;,strtotime(&#34; +1天&#34;))
简单。