JavaScript函数(输入日期大于今天的日期)

9

我是javascript的初学者:

我需要一个函数来检测用户输入的日期,并在日期小于今天的日期时向他发出警报...

HTML:

 <input type="date" name="StartDate" id="userdate"  required />

我尝试过的 JavaScript 代码(当然是失败了):

function TDate() {
var UserDate = document.getElementById("userdate").value;
var ToDate = Date.now();
if (UserDate != ToDate) {
    alert("The Date must be Bigger or Equal to today date")
    return false;
}
return true;}

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Alex K.
系统或服务器今天的日期是18/11/2015,如果用户输入了17/11/2015这个受限制的日期,我需要一个函数来提醒用户并将焦点放在日期上以便更改。 - Fares B Bader
请标记最佳答案 :) - Zohaib Ijaz
4个回答

24

我已创建了一个代码片段

https://jsbin.com/jidogo/edit?html,js,output

<input type="date" name="StartDate" id="userdate" onchange="TDate()" required />

JS

->

JavaScript

function TDate() {
    var UserDate = document.getElementById("userdate").value;
    var ToDate = new Date();

    if (new Date(UserDate).getTime() <= ToDate.getTime()) {
          alert("The Date must be Bigger or Equal to today date");
          return false;
     }
    return true;
}

这是一个不错的代码,但是当我手动插入日期时,它会从年份部分的第一个值开始警报...... 我认为需要一个按钮和(onclick)事件... 是吗? - Fares B Bader
实际上我之前已经做过这个,但后来改变了,因为我预计你需要在更改时进行验证,但你是对的,添加一个按钮,像 <button onclick="TDate()">验证</button>,并从输入框中移除 onchange 属性。 - Zohaib Ijaz

2

我假设您可以通过 var selectedDate = document.getElementById("userdate").value 获取选定的日期对象。然后,您可以像比较两个整数一样比较两个日期:

function TDate() {
    var selectedDate = document.getElementById("userdate").value;
    if (selectedDate < Date.now()) {
        alert("The Date must be Bigger or Equal to today date")
        return false;
    }
    return true;
}

1

被接受的答案按时间排序。
由于输入类型是"日期",毫秒数为000
进行日期比较

var variable1 = new Date();
var variable2 = variable1.toISOString().split('T')[0];
if (new Date($("#userdate").val()).getTime() < new Date(variable2).getTime()) {
    //input date less than todays date
}else{
    //input date bigger than todays date
}

0

我认为这个答案比其他答案更干净,感谢Juank

var now = new Date(),
    minDate = now.toISOString().substring(0,10);

$('#my-date-input').prop('min', minDate);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接