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

比较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) { ... }
于 2013-01-21T13:28:35.183 回答
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 回答