【问题标题】:comparing today's date and input date in javascript在javascript中比较今天的日期和输入日期
【发布时间】:2023-03-13 07:19:01
【问题描述】:

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

<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 语句的输出。

【问题讨论】:

  • m == month 其中一个是数组,另一个不是,所以它们永远不会相等。 d == day 也一样。

标签: javascript date string-comparison


【解决方案1】:

请注意,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()
) {}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 2014-09-09
    • 1970-01-01
    • 2011-01-08
    • 2013-03-27
    • 1970-01-01
    相关资源
    最近更新 更多