0

我的代码在 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

4

1 回答 1

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 */
于 2012-11-28T18:03:05.473 回答