6

2 つの日付を比較してdatepicker、7 日以上離れているかどうかを確認しようとしています。

どうすればいいですか?

私は通常、それらの差が 7 より大きいかどうかを確認しますが、それは数か月などを考慮しません。

これが私のコードです:

var datepickerBegin = $("#datepicker_start").val();
var datepickerEnd = $("#datepicker_to").val();

if (datepickerBegin - datepickerEnd > 7) { 
    alert('more than a week apart!') 
}

任意のヒント??

4

6 に答える 6

18

$("#datepicker_xxx").datepicker("getDate")ピックされた日付を として取得するために使用しますDate。それからそれはただの問題です

end - begin > 7 * 86400 * 1000
于 2012-10-10T14:00:29.960 に答える
2

// 日付範囲を確認します。86400000 は 1 日のミリ秒数です

var difference = (datepickerEnd- datepickerBegin ) / (86400000 * 7);
if (difference < 0) {
  alert("The start date must come before the end date.");
  return false;
}

if (difference <= 1) {
  alert("The range must be at least seven days apart.");
  return false;
}

return true;
于 2012-10-10T14:14:22.660 に答える
2

これを試してください。DatePicker には、mm/dd/yy の日付を比較するために使用した便利な formatDate 関数があります。

$.datepicker.formatDate("dd/mm/yy",new Date("09/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns true
$.datepicker.formatDate("dd/mm/yy",new Date("10/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns false
$.datepicker.formatDate("dd/mm/yy",new Date("11/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns false

于 2014-11-21T15:12:42.370 に答える
1

これを試して:

var datepickerBegin = $("#datepicker_start").val(); // lets, returning in mm/dd/yy format
var datepickerEnd = $("#datepicker_to").val(); // lets, returning in mm/dd/yy format

if ( ($.datepicker.parseDate('mm/dd/yy', datepickerBegin) -  $.datepicker.parseDate('mm/dd/yy', datepickerEnd)) > 7) {
alert('more than a week apart!') ;
}

それがうまくいくことを願っています。ありがとう。詳細については、それをチェックしてください。

于 2013-04-17T13:14:53.260 に答える
1
$(document).ready(function(){
    $("#txtFromDate").datepicker({
        minDate: 0,
        maxDate: "+60D",
        numberOfMonths: 2,
        onSelect: function(selected) {
          $("#txtToDate").datepicker("option","minDate", selected)
        }
    });
    $("#txtToDate").datepicker({ 
        minDate: 0,
        maxDate:"+60D",
        numberOfMonths: 2,
        onSelect: function(selected) {
           $("#txtFromDate").datepicker("option","maxDate", selected)
        }
    });  
});

から:<input type="text" id="txtFromDate" />

に:<input type="text" id="txtToDate" />

于 2015-04-21T21:40:06.427 に答える
0

これは完全に機能しています

function checkDateDifference(startDate, endDate) {
    startDate = $.datepicker.parseDate('mm/dd/yy', startDate);
    endDate = $.datepicker.parseDate('mm/dd/yy', endDate);

    var difference = (endDate - startDate) / (86400000);
    alert(difference)
    if (difference < 0) {
        showError("The start date must come before the end date.");
        return false;
    }
    return true;

}
于 2013-09-18T07:45:48.347 に答える