验证然后打印日期输入

时间:2016-10-28 22:13:46

标签: javascript date

我需要验证日期输入,使其介于(包括)2016年9月1日至2017年8月31日之间。从这个函数,我试图调用一个新函数来打印这个日期给用户。以下代码似乎有效,但调用(9/1/2016)的警报并且不使用Holiday()函数打印结果。

function validate()
{

    var y= document.getElementById("userdate").value;
    var x= new Date(y);
    var minDate = new Date('09/01/2016');
    var maxDate =  new Date('08/31/2017');

    if (x >= minDate && x <= maxDate ){
         Holiday();
    }
    else{
        alert('Date must be between 9/1/2016 and 8/31/2017');
    }
 }

function Holiday() {

    var x = document.forms[0].elements[0].value;
    var mydate = new Date(x);
    txt += "The date that user entered is " + mydate + "<p>";
    var day = mydate.getUTCDate();
    var month = mydate.getMonth() + 1; 
    var year = mydate.getFullYear();
    document.getElementById("display").innerHTML = "Fomatted date " + month + "/" + day  + "/" + year;  
}

1 个答案:

答案 0 :(得分:0)

PLUNKER

它似乎对我很好

function validate() {
  //var y= document.getElementById("userdate").value; //COMMENTED OUT
  var x = new Date('09/01/2016');  //DEFAULT TO
  var minDate = new Date('09/01/2016');
  var maxDate = new Date('08/31/2017');
  debugger;
  if (x >= minDate && x <= maxDate) {
    Holiday(x);    // PASS THE VALUE
  } else {
    alert('Date must be between 9/1/2016 and 8/31/2017');
  }
}

function Holiday(theDate) {  //RECIEVE THE VALUE
  var mydate = theDate;
  var day = mydate.getUTCDate();
  var month = mydate.getMonth() + 1;
  var year = mydate.getFullYear();
  document.getElementById("display").innerHTML = "Fomatted date " + month + "/" + day + "/" + year;
}

我没有看到任何错误。它将其打印到屏幕上,没有警报。尽管我没有太大变化,但还是试一试。