将输入类型日期与当前日期进行比较

时间:2017-10-03 10:36:29

标签: javascript date

<input type="date" name="bday" id="biday" required>

我必须从用户的输入类型日期字段中取日期,如果输入的日期大于当前日期,我必须在警告框中打印一些错误。我尝试了各种方法,但没有一种方法适用于输入类型日期。我试图采用两个变量存储当前日期,第二个变量采用日期输入元素“

的值
var startDate = Date(document.getElementByID('biday').value);
    var today = new Date();
    if (startDate > today) {
        alert("The first date is after the second date!");

`。有人请帮助我完成任务的程序。

4 个答案:

答案 0 :(得分:0)

你在getElementByID得到一个小错误它应该是getElementById

此外,可以将日期字符串作为MYSQL格式'YYYY-MM-DD'进行比较,这样您就可以将两个值直接比较为字符串。

 '2017-12-1' < '2017-12-3'
 // true

如果您使用其他格式操作,您可以创建一个新的Date对象并将其解析为TimeStamp,如下所示:

// Receives a date String or Object
// and returns the aprox TimeStamp
function valueifyDate(date){
    if(typeof date == 'object'){
    return date.getTime();
  }else{
    return new Date(date).getTime();
  } 
}

var bday = document.getElementById('birthday');
bday.addEventListener("change", function(e){
  var today = new Date();
  if(valueifyDate(today) < valueifyDate(e.target.value)){
    console.log("younger than today");
  }
})

https://jsfiddle.net/jbnLx3v3/

答案 1 :(得分:0)

这是另一种方式。

<强> HTML

 <input type="date" id="dval" value="" />
 <button onclick="test()">TEsting</button>

<强> JS

 function test() {
     var q = new Date();
     var date = new Date(q.getFullYear(),q.getMonth(),q.getDate());
     var mydate = new Date(document.getElementById('dval').value);

     if(date > mydate) {
        alert("Current Date is Greater THan the User Date");
     } else {
        alert("Current Date is Less than the User Date");
     }
  }

DEMO

注意:Firefox或Internet Explorer 11及更早版本不支持 type="date"

答案 2 :(得分:0)

要检查startDate中是否有日期,最好使用Date.parse(在Date构造函数中隐式使用)并比较检查NaN是否today.getTime() 。如前所述,您需要使用startDate获取与时间对应的数值。然后,您可以比较已解析的today.getTime()getElementById。此外,它应该是getElementByID而不是function compareDates() { var startDate = Date.parse(document.getElementById('biday').value); var today = new Date(); if (!isNaN(startDate) && startDate > today.getTime()) { alert("The first date is after the second date!"); } }。请参阅以下更正的代码:

<input type="date" name="bday" id="biday" required onchange='compareDates()'>
mu, sigma = df.mean(), df.std()
#get mask of NaNs
a = df[0].isnull()
#get random values by sum ot Trues, processes like 1
norm_dist = np.random.normal(mu, sigma, a.sum())
print (norm_dist)
[ 184.90581318  364.89367364  181.46335348]
#assign values by mask
df.loc[a, 0] = norm_dist
print (df)

            0
0  343.000000
1  483.000000
2  101.000000
3  184.905813
4  364.893674
5  181.463353

答案 3 :(得分:-1)

您的代码有很多错误,例如getElementByID应为getElementById,而您没有从输入中获取value,依此类推。请查看下面的代码段以供参考。

&#13;
&#13;
function checkDate() {

  var startDate = new Date(document.getElementById('biday').value);
  var today = new Date();
  if (startDate.getTime() > today.getTime()) {
    alert("The first date is after the second date!");
  }  
}
&#13;
<input type="date" name="bday" id="biday" required>
<input type="submit" value="check" onclick="checkDate()">
&#13;
&#13;
&#13;