3

別のテキストボックスに日付を入力し、ドロップダウンから年を選択し、テキストボックスに年を入力して、フォームに生年月日を入力しています。ここで、入力した日付がjqueryの現在の日付より大きくてはならないことを確認したいと思います。どのように助けてください?

var CurrentMonth = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear();
    var SelectedDate = $('[id$=spDate]').val() + '/' + $('[id$=drpMonth]').val() + '/' + $('[id$=txtYear]').val();
    if (CurrentDate > SelectedDate) {
        return false;
    } 
4

6 に答える 6

12

入力値が整数のDate場合、それらを使用してインスタンスを作成できます。

var CurrentDate = new Date();
var SelectedDate = new Date(
    $('[id$=txtYear]').val(),
    $('[id$=drpMonth]').val(),
    $('[id$=spDate]').val()
);

//As quite rightly mentioned, January = 0, so if your inputs have the literal number for each month (1 for January) replace the line above with the following, to take a month off:
//var SelectedDate = new Date($('[id$=txtYear]').val(), $('[id$=drpMonth]').val()-1, $('[id$=spDate]').val());

if(CurrentDate > SelectedDate){
    //CurrentDate is more than SelectedDate
}
else{
    //SelectedDate is more than CurrentDate
}
于 2013-01-21T13:21:31.243 に答える
3

Dateオブジェクトの比較は簡単です。標準の関係演算子を使用するだけです。渡されるObjectと、オブジェクトの.valueOf()関数を暗黙的に呼び出します。この関数は、比較に適したミリ秒単位の時間を返します。

難しいのはDate、そもそも有効なオブジェクトを作成することです。

信頼性のために、文字列を渡すのではなく、このバージョンのDateコンストラクターを使用することを強くお勧めします。

new Date(year, month, day [, hour, minute, second, millisecond]);

これにより、ローカルの日付形式は重要ではなくなります。mm/dd/yyyy文字列を渡すと、デフォルトの日付形式がユーザーのロケールであるかユーザーのロケールであるかによって、異なる結果が生成される可能性がありdd/mm/yyyyます。

年は1桁の年でなければならず、このバージョンでは1月は1ではなく0で表されることを忘れないでください。

var SelectedDate = new Date(
    $('[id$=txtYear]').val(),
    $('[id$=drpMonth]').val() - 1,
    $('[id$=spDate]').val());

if (CurrentDate > SelectedDate) { ... }
于 2013-01-21T13:28:35.183 に答える
3
  function compareDate() {
var dateEntered = document.getElementById("txtDateEntered").value; 
var date = dateEntered.substring(0, 2);
var month = dateEntered.substring(3, 5);
var year = dateEntered.substring(6, 10);

var dateToCompare = new Date(year, month - 1, date);
var currentDate = new Date();

if (dateToCompare > currentDate) {
    alert("Date Entered is greater than Current Date ");
}
else {
    alert("Date Entered is lesser than Current Date");
}
}
于 2013-11-11T06:01:53.547 に答える
3

これが役立つかどうかを確認します。

var TodayDate = new Date();
var endDate= new Date(Date.parse($("#EndDate").val()));

if (endDate> TodayDate) {
    // throw error here..
}

https://stackoverflow.com/a/40039798/885627

于 2016-10-14T09:36:10.240 に答える
1

この関数を試してください:

function isFutureDate(dateText) {

            var arrDate = dateText.split("/");
            var today = new Date();
            useDate = new Date(arrDate[2], arrDate[1] - 1, arrDate[0]);
            if (useDate > today) {
                return true;
            } else return false;
        }
于 2013-12-07T12:35:07.497 に答える
1

受け入れられた回答は時間ごとにチェックされます。
入力タイプが「日付」であるため、ミリ秒は
日と比較するために000です。

var variable1 = new Date();
var variable2 = variable1.toISOString().split('T')[0];
var SelectedDate = new Date(
    $('[id$=txtYear]').val(),
    $('[id$=drpMonth]').val(),
    $('[id$=spDate]').val()
);
if (SelectedDate.getTime() < new Date(variable2).getTime()) {
    //input date less than todays date
}else{
    //input date bigger than todays date
}
于 2021-11-12T17:28:30.843 に答える