0

私のコードはChromeとFirefoxで正常に動作します。IE互換モードで動作させることができません。IEで機能しますが、 newDateStringmaxDate: new Date(2012 AUG 28)を指定すると、月の変更が無効になります。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でエラーが発生します。それはクロムとFirefoxでうまく動作します

newDateString = newToDate.getFullYear() + " " + m_names[newToDate.getMonth()] + " " + newToDate.getDate();  

alert($.datepicker.parseDate('yy-mm-dd', newDateString));

メッセージ:例外がスローされ、キャッチされませんでした行:192文字:21310コード:0

localhost: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 に答える