【问题标题】:Birthday Calculator (with months and days) using javascript [duplicate]使用javascript的生日计算器(带有月份和日期)[重复]
【发布时间】:2019-11-12 02:09:56
【问题描述】:

我正在尝试创建一个生日计算器,它还包括月份和日期,而不仅仅是年份。

但是我似乎无法让它发布答案,并且发布时它是不正确的。

我仍在学习,所以我非常感谢任何反馈,我希望这是我忽略的一些简单的事情。

//birthday (entered by user)
function calculateDiff(){
  var FromYear = parseInt(date[2]);
  var FromMonth = parseInt(date[1]);
  var FromDay = parseInt(date[0]);


  //current date
  var ToYear = today.getFullYear();
  var ToMonth = today.getMonth() + 1;
  var ToDay = new Date();
  var years, months, days;

  //months
  months = ToMonth - FromMonth;
  if(ToDay < FromDay) {
	months = months -1;
  }


  //years
  years = ToYear = FromYear;
  if(ToMonth < FromMonth) {
	years = years - 1;
	months = months + 12;
  }

  //days
  days = Math.floor((ToDay.getTime() - (newDate(FromYear + years, FromMonth + months - 1, FromDay)).getTime()) / (24 * 60 * 60 * 1000));

  //answer order
  var answer = years + " years, " + months + " months, and " + days + " days.";

  //post answer
  document.getElementById("result").textContent =  answer;
  return {years: years, months: months, days: days};
}
	   <table>
        <tbody>
        <tr class="header">
          <th>&nbsp;</th>
          <th>Year</th>
          <th>Month</th>
          <th>Day</th>
        </tr>
        <tr>
       <th>Birth Date</th>
          <td><input  id="FromYear"  placeholder="YYYY" value=""></td>
          <td><input  id="FromMonth" placeholder="MM" value=""></td>
          <td><input  id="FromDay"   placeholder="DD" value=""></td>
        </tr>

        <tr>
          <th colspan="4">
            <button id="calculateDiff">Calculate</button>
          </th>
        </tr>
        <tr colspan="4">
          <th>You are <div id="result"></div></th>
      </tr>
      </tbody>
    </table>

【问题讨论】:

标签: javascript html


【解决方案1】:

你可以试试下面的代码

<script>
function calculateDiff(){
  var FromYear = parseInt(document.getElementById("FromYear").value);
  var FromMonth = parseInt(document.getElementById("FromMonth").value);
  var FromDay = parseInt(document.getElementById("FromDay").value);


  //current date
  var today = new Date();
  var ToYear = today.getFullYear();
  var ToMonth = today.getMonth() + 1;
  var ToDay = today.getDay()
  var years, months, days;

  //months
  months = ToMonth - FromMonth;
  if(ToDay < FromDay) {
    months = months -1;
  }


  //years
  years = ToYear - FromYear;
  if(ToMonth < FromMonth) {
    years = years - 1;
    months = months + 12;
  }

  //days
  days = Math.floor(31 - (FromYear + years, FromMonth + months - 1, FromDay));

  //answer order
  var answer = years + " years, " + months + " months, and " + days + " days.";

  //post answer
  document.getElementById("result").textContent =  answer;
  return {years: years, months: months, days: days};
}
</script>



   <table>
        <tbody>
        <tr class="header">
          <th>&nbsp;</th>
          <th>Year</th>
          <th>Month</th>
          <th>Day</th>
        </tr>
        <tr>
       <th>Birth Date</th>
          <td><input  id="FromYear"  placeholder="YYYY" value=""></td>
          <td><input  id="FromMonth" placeholder="MM" value=""></td>
          <td><input  id="FromDay"   placeholder="DD" value=""></td>
        </tr>

        <tr>
          <th colspan="4">
            <button id="calculateDiff" onclick="calculateDiff()">Calculate</button>
          </th>
        </tr>
        <tr colspan="4">
          <th>You are <div id="result"></div></th>
      </tr>
      </tbody>
    </table>

【讨论】:

  • 请说明您所做的更改。
  • 我刚刚使用 javascript 从文本框中获取数据并与当前日期进行比较。可以调试一下了解一下
猜你喜欢
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
相关资源
最近更新 更多