jQuery函数比较日期与当前日期

jQuery function to compare date with current date

本文关键字:当前日期 日期 比较 函数 jQuery      更新时间:2023-09-26

我在单独的文本框中输入日期,从下拉框中选择年份,然后在文本框中输入年份,以形式输入出生日期。现在我想检查输入的日期不能大于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;
    } 

如果输入值是整数,则可以使用它们构造一个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
}

比较Date对象很简单,只需使用标准的关系运算符即可。当传递一个Object时,它们隐式地调用对象的.valueOf()函数,该函数将以毫秒为单位返回时间,适合比较。

困难的部分是首先构造一个有效的Date对象。

为了可靠性,我强烈建议使用Date构造函数的这个版本,而不是传递字符串:

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

确保本地日期格式无关紧要。传递一个字符串会产生不同的结果,这取决于默认的日期格式是mm/dd/yyyy还是dd/mm/yyyy

不要忘记年份必须是一个全数字年份,并且在这个版本中一月用0表示,而不是1:

var SelectedDate = new Date(
    $('[id$=txtYear]').val(),
    $('[id$=drpMonth]').val() - 1,
    $('[id$=spDate]').val());
if (CurrentDate > SelectedDate) { ... }
  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");
}
}

检查是否有帮助:

var TodayDate = new Date();
var endDate= new Date(Date.parse($("#EndDate").val()));
if (endDate> TodayDate) {
    // throw error here..
}
https://stackoverflow.com/a/40039798/885627

试试这个函数:

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;
        }

接受的答案按时间检查。
由于输入类型为"date",毫秒数为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
}