在javascript中比较今天的日期和输入日期

时间:2019-05-17 20:30:41

标签: javascript date string-comparison

我试图获取用户的输入并将其存储在一个变量中,该变量可用于与今天的日期进行比较。如果等于今天,它将输出一条消息,否则将仅输出数据。

<script>
  let month  = [];
  let day   = [];
  let year = [];

  let monthInput  = document.getElementById("month");
  let dayInput   = document.getElementById("day");
  let yearInput = document.getElementById("year");

  let messageBox  = document.getElementById("display");

  function insert ( ) {
  month.push( monthInput.value );
  day.push( dayInput.value );
  year.push( yearInput.value );
  celebrate();
  }

  function  celebrate() {

  // Show output
   messageBox.innerHTML = "";

    let q = new Date();
    let m = q.getMonth();
    let d = q.getDay();
    let date = new Date(m, d);
  //compares dates
    if( m == month && d == day ){
      messageBox.innerHTML = `Happy Birthday!`;
    }else{
      console.log(date);
      messageBox.innerHTML += `Your birthday is ${month}/${day}`;
    }
  }
</script>

我只有else语句的输出。

1 个答案:

答案 0 :(得分:0)

请注意,getDay返回星期几(5 =星期五),并且getMonth是基于0的,因此May是4而不是5。

因此,如果要将月和日与用户输入的值进行比较,则应使用date.getMonth() + 1作为月份,date.getDate()作为日期。

如果要使用输入的值,只需使用value属性。例如document.getElementById("month").value

简而言之:

var d = new Date();
if (
  Number(document.getElementById("month").value) === (d.getMonth() + 1) &&
  Number(document.getElementById("day").value) === d.getDate()
) {}