【问题标题】:Calculate days in month with getDate JavaScript使用 getDate JavaScript 计算月份中的天数
【发布时间】:2019-01-03 14:25:17
【问题描述】:

我正在使用以下 JS 来计算今天日期前 X 天。输出似乎工作正常,除了结果不考虑每个月的天数。因此,如果今天是第 26 天,我加上 9 天,则将日期输出为第 35 天,这显然没有意义。

<script>
  window.onload=function(){
   var dateObj = new Date();

   var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];

   var month = months[dateObj.getMonth()]; //months from 1-12
   var day = dateObj.getUTCDate() +9;
   var year = dateObj.getUTCFullYear();

   newdate = day + " " + month + " " + year;
   document.getElementById("date").innerHTML=(newdate);
}
</script>

如何让它输出准确的日期?

【问题讨论】:

  • 使用setUTCDate() 将日期设置为当前值加上您的偏移量,然后在此之后返回月份的日期。它还会更新月份值,因此请在获取月份和年份之前执行此操作。
  • @Pointy 你能用代码告诉我吗?我自己不太擅长 JS,我从其他地方修改了这段代码。谢谢你:)
  • 这个应该关闭,已经有many answers,例如How can I add 1 day to current date?

标签: javascript html validation date


【解决方案1】:

您应该能够使用 Date.setDate 函数来执行此操作,而不是获取日期然后将 9 添加到它

window.onload = function() {
  var dateObj = new Date();
  // -------------- add this line -------//
  dateObj.setDate(dateObj.getDate() + 9);

  var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

  var month = months[dateObj.getMonth()]; //months from 1-12
  var day = dateObj.getUTCDate(); //+9; remove +9
  var year = dateObj.getUTCFullYear();

  newdate = day + " " + month + " " + year;
  document.getElementById("date").innerHTML = (newdate);

}

【讨论】:

    【解决方案2】:

    您应该使用 setDate() 更新您的日期,使用 getDate() 获取当前日期并添加 9。

    window.onload = function() {
      var dateObj = new Date();
      // add 9 days here
      dateObj.setDate(dateObj.getDate() + 9);
    
      var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    
      var month = months[dateObj.getMonth()]; //months from 1-12
      var day = dateObj.getUTCDate();
      var year = dateObj.getUTCFullYear();
    
      newdate = day + " " + month + " " + year;
      document.getElementById("date").innerHTML = (newdate);
    
    }
    &lt;span id="date"&gt;&lt;/span&gt;

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2020-05-09
      • 2021-01-11
      相关资源
      最近更新 更多