为什么datepicker不能在IE 7中接受我的日期字符串

时间:2012-11-28 17:52:37

标签: jquery jquery-ui jquery-ui-datepicker

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

1 个答案:

答案 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 */