2つの日付を比較しようとしています.1つはテキストボックスにあり、もう1つYYYY-MM-DD
はjquery Datepickerインスタンスです
カスタムラッパー関数で関数を呼び出しています
datePicker('#edd', {onSelect: function(str, obj){ check_if_edd_less_OD(str, obj); }});
以下は、日付を比較するJS関数です
function check_if_edd_less_OD(s, o) {
console.clear();
var eddDate = new Date();
eddDate.setDate(o.selectedDay);
eddDate.setMonth(o.selectedMonth);
eddDate.setYear(o.selectedYear);
orderDate = $('#orderdate').val().split('-');
console.log(orderDate);
var odDate = new Date();
odDate.setDate(parseInt(orderDate[2], 10));
odDate.setMonth(parseInt(orderDate[1], 10));
odDate.setYear(parseInt(orderDate[0], 10));
console.log(eddDate);
console.log(odDate);
if (odDate.getTime() < eddDate.getTime()) {
console.log('You shall Pass');
} else {
console.log('You shall NOT Pass');
}
}
今日の時点で、orderdate 入力は 2013-03-07 に設定されています。datepicker から 2013 年 4 月 5 日を選択すると機能しません
以下はコンソールの出力です
["2013", "03", "07"]
Date {Fri Apr 05 2013 16:55:23 GMT+0500 (Pakistan Standard Time)}
Date {Sun Apr 07 2013 16:55:23 GMT+0500 (Pakistan Standard Time)}
You shall NOT Pass
ご覧 console.log(eddDate);
のとおり、正しい出力が得られますが、 console.log(odDate);
2013 年 4 月 7 日になっています。
質問:なぜこのような動作になるのですか?