2

編集:以下の回答でいくつかの提案を試しましたが、まだ適切な結果が得られません。さらに助けていただければ幸いです。

入力として 2 つの日付を取り、それらが 2 つの配列に追加される HTML でフォームを実装しました。次に、2 つの日付の差を月単位で計算します。

a) フォームはユーザーに 5 年間の履歴を尋ねます。したがって、ユーザーは 5 年間 (60 か月) 富むまで日付を入力できるはずです。この問題については、以下の機能を試しました。

if (typeof startArray[index] !== 'null' && endArray[index] !== null) {
var result = difference_between(dateFrom, dateTo);
document.getElementById("txtResult").value = result
if(result <= 60) {
document.getElementById('datepicker1').reset();
document.getElementById('datepicker2').reset();
document.getElementById('txtResult').reset();
}
else{
alert("Go to the next section");
document.getElementById('btnSave').disable = true;
}

b) フォームは、終了日と次の開始日のギャップを計算できる必要があり、2 か月を超えるギャップがあってはなりません。たとえば、フォームは学校を卒業した日付と大学を始めた日付を比較できる必要があり、それが 2 か月を超える場合は、エラー メッセージを表示する必要があります。これが私の機能です:

function GetDifference() {
var dateFrom = new Date(document.getElementById("datepicker1").value);
var dateTo = new Date(document.getElementById("datepicker2").value);
document.getElementById("txtResult").value = difference_between(dateFrom, dateTo);

//Is there a gap of more than 2 months?
if (endDate.length && (difference_between(endDate[endDate.length - 1], dateFrom)) > 2) {
    window.alert("There should not be a gap of more than two months in this section.");
}
}

ここにJSFIDDLEがあります:http://jsfiddle.net/stelios13/KsuxV/111/

ありがとうございました。

4

2 に答える 2

0

もしかしたら、 moment.jsが役に立つかもしれません。日付を操作するための js ライブラリであり、diff関数も備えています。

于 2013-08-31T17:23:39.890 に答える