我的代码在Chrome和Firefox中运行良好。我无法让它在IE兼容模式下工作。如果我将maxDate: new Date(2012 AUG 28)
放在IE中,但是如果我给newDateString,则禁用更改月份。 jsfiddle
endDate = "2012-09-11";
var m_names = new Array("JAN", "FEB", "MAR",
"APR", "MAY", "JUN", "JUL", "AUG", "SEP",
"OCT", "NOV", "DEC");
var toDate = Date.parse(endDate) - 2592000000;
var newToDate = new Date(toDate);
newDateString = newToDate.getFullYear() + " " + m_names[newToDate.getMonth()] + " " + newToDate.getDate();
$('#datepicker').datepicker({
showOn: "both",
maxDate: new Date(newDateString ),
showAnim: "slide",
buttonImageOnly: true,
dateFormat: "yy-mm-dd",
onSelect: function(dateTxt, inst) {
$('#<DateForm').submit();
},
buttonText: ""
});
$('#datepicker').datepicker("setDate", startDate);
更新:
我修改了代码以使用$.datepicker.parseDate
。我在IE中收到错误。它在chrome和firefox中运行良好
newDateString = newToDate.getFullYear() + " " + m_names[newToDate.getMonth()] + " " + newToDate.getDate();
alert($.datepicker.parseDate('yy-mm-dd', newDateString));
消息:异常抛出但未捕获行:192字符:21310代码:0
本地主机:80 / jquery的-UI-1.8.18.custom.min.js
答案 0 :(得分:1)
Date.parse
识别的日期格式因实施而异。相反,请使用$.datepicker.parseDate
。
有关文档,请参阅http://docs.jquery.com/UI/Datepicker/parseDate。
以下是如何使用它从日期减去30天:
var toDate = $.datepicker.parseDate('yy-mm-dd', endDate);
toDate.setDate(toDate.getDate()-30); /* Subtract 30 days */