当前位置: 首页 > 知识库问答 >
问题:

使用javascript[复制]的生日计算器(包含月份和天数)

戚翼
2023-03-14

我试图创建一个生日计算器,也包括几个月和几天,而不仅仅是几年。

然而,我似乎无法让它发布答案,当它发布时,它是不正确的。

我还在学习,所以我真的很感激任何反馈,我希望这是我忽略的简单的东西。

js prettyprint-override">//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>

共有1个答案

胥诚
2023-03-14

你可以试试下面的代码

<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>
 类似资料:
  • 我想有一个日期选择器,用户可以从日期选择器中只选择月份和年份,我还需要限制从以前的日期选择器中选择月份和年份的下一个日期选择器... 有人能帮我解脱吗?

  • 我们使用下面的代码。 但我们找不到它们之间的月和日。我想假设开始日期是2014年9月27日,结束日期是2014年11月1日。结果将是1个月零5天。

  • 问题内容: 如果您提供的在你上一个月的最后一天: 在mozilla上有对此行为的引用。这是可靠的跨浏览器功能还是我应该考虑替代方法? 问题答案: var month = 0; // January var d = new Date(2008, month + 1, 0); alert(d); // last day in January 输出差异是由于实现方式的差异,而不是日期不同。 当然,仅因为

  • 我正在处理卡的到期日期。我有一个API,我将在其中获得“yyMM”格式的到期日期为“String”。在这里,我正在尝试使用 带有TimeZone.getTimeZone("UTC ")的SimpleDateFormat 所以我的代码就像 现在的问题是,当我通过 2011 年时,它给出的是 这里你可以看到我把11作为月份,但是它把它转换成10月而不是11月。 为什么? 还有哪些其他选项可以将带有 的

  • 我不确定这是否可能? 我得拿到密码才能读 今天的月份即2月今天的日期即17月底的日期即31日,然后是一年中的其他11个月,在一行中按顺序排列 8月1日-31日|9月|10月|11月|12月|1月|2月|3月|4月|5月|6月|7月 请以最佳方式提供任何建议? 多谢 定时(timing的缩写)

  • 本文向大家介绍原生JavaScript制作计算器,包括了原生JavaScript制作计算器的使用技巧和注意事项,需要的朋友参考一下 原生JavaScript制作计算器 再给大家分享一个稍微复杂些的计算器 效果图演示