我有两个日期存储在db中并使用$ .ajax()选择它,我需要的是在我从db中选择的日期之间显示datepicker值。
这是我的代码。但是它无法正常工作
function setDatePickerSettings(isFisc) {
var fSDate, fEDate;
$.ajax({
type: "POST",
url: '../Asset/Handlers/AjaxGetData.ashx?fisc=1',
success: function(data) {
alert(data);
var res = data.split("--");//data will be 4/4/2010 12:00:00--5/4/2011 12:00:00
var sDate = res[0].split(getSeparator(res[0]));
alert("Separator " + getSeparator(res[1]) + " Starts " + sDate);
var eDate = res[1].split(getSeparator(res[1]));
alert("End " + eDate);
alert("sub " + sDate[0]);
fSDate = new Date(sDate[2].substring(0, 4), sDate[0], sDate[1]);
alert("Starts " + fSDate.substring(0, 4));
fEDate = new Date(eDate[2].substring(0, 4), eDate[0], eDate[1]);
alert("eND " + fEDate.toString());
}
});
var dtSettings = {
changeMonth: true,
changeYear: true,
showOn: 'both',
buttonImage: clientURL + 'images/calendar.png',
buttonImageOnly: true,
showStatus: true,
showOtherMonths: false,
dateFormat: 'dd/mm/yy',
minDate:fSDate, //assigning startdate
maxDate:fEDate //assigning enddate
};
return dtSettings;
}
请提供一些解决方案。我需要日期时间选择器,它需要该范围之间的值。提前致谢
答案 0 :(得分:40)
minDate / maxDate的语法错误。 You can read the documentation on the jQuery UI website where the demo is。我建议你看看它,以适应你的具体情况。它看起来像这样:
$( ".selector" ).datepicker({ minDate: new Date(2007, 1 - 1, 1) });
或
以下内容将使您无法在今天之前选择任何内容。
$( ".selector" ).datepicker({ minDate: 0 });
这将使你在明天之前不能选择任何东西
$( ".selector" ).datepicker({ maxDate: 1 });
编辑:这是你如何插入自己的日期,但我有一个问题,让dateFormat正常工作,你可以看到我指定了dateFormat,但我实际放入的格式是忽略dateformat。
$("#txtDateStart").datepicker({dateFormat:'mm/dd/yy', minDate: new Date(2010,11,12) });
答案 1 :(得分:1)
这对我有用。
$('#date-time-picker').datepicker({
format: 'YYYY-MM-DD',
useCurrent: false,
showClose: true,
minDate: '2018-02-01',
maxDate: '2018-03-15',
})
答案 2 :(得分:1)
我知道这是一篇古老的帖子,但是@TheMuffinMan
提出的关于无法使用日期限制选项的日期格式的错误是真实的,并且只有当选项符合内容时才会显示在他的例子中。
如果你必须使用这种格式,并且如果有人仍然感兴趣,那么解决它的方法是将日期格式选项作为集合中的最后一个选项。例如,下面的代码对我来说完美无瑕。
var minDate = -20;
var maxDate = "+1M +10D"
$('body').on('focus',".datepicker", function(){
$(this).datepicker({ minDate: minDate, maxDate: maxDate },{dateFormat: "dd/mm/yy"});
});
我希望它可以帮助别人。
答案 3 :(得分:0)
我使用了这个,我得到了输出。谢谢所有
function setFiscDatePickerSettings() {
var fSDate, fEDate, sDate, fEDate;
var dtSettings;
sDate = document.getElementById("<%=hdfFiscStart.ClientID %>").value.split(getSeparator(document.getElementById("<%=hdfFiscStart.ClientID %>").value));
eDate = document.getElementById("<%=hdfFiscEnd.ClientID %>").value.split(getSeparator(document.getElementById("<%=hdfFiscEnd.ClientID %>").value));
fSDate = new Date(sDate[2].substring(0, 4), sDate[0] - 1, sDate[1]);
fEDate = new Date(eDate[2].substring(0, 4), eDate[0] - 1, eDate[1]);
dtSettings = {
changeMonth: true,
changeYear: true,
showOn: 'both',
buttonImage: clientURL + 'images/calendar.png',
buttonImageOnly: true,
showStatus: true,
showOtherMonths: false,
dateFormat: 'dd/mm/yy',
minDate: fSDate, maxDate: fEDate
};
return dtSettings;
}
function bindFiscalDatePicker() {
var inputDt = $("input.datepicker_fisc");
inputDt.addClass("numbers_only");
inputDt.addClass("allow_special");
inputDt.attr("symbolcodes", "/");
inputDt.datepicker(setFiscDatePickerSettings());
}