Javascript倒计时计时器不起作用

时间:2018-04-11 11:31:20

标签: javascript

我遇到了这个codepen https://codepen.io/donovanh/pen/JWdyEm,我试图将它应用到我做过的旧倒数计时器,因为这个似乎更好..如果我将倒数日期设置为今天,那么它仍然说有30个剩下的日子。

以下是计算日期差异的代码。

function daysBetween( date1, date2 ) {
  //Get 1 day in milliseconds
  var one_day=1000*60*60*24;

  // Convert both dates to milliseconds
  var date1_ms = date1.getTime();
  var date2_ms = date2.getTime();

  // Calculate the difference in milliseconds
  var difference_ms = date2_ms - date1_ms;

  // Convert back to days and return
  return Math.round(difference_ms/one_day); 
}

console.log("Days to end of April = " +
  daysBetween(new Date(), new Date("2018-04-30")));

我无法弄清楚额外日子的来源,感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:1)

月份从0开始,然后转到11。

4月底为Date("2018-03-30"),而不是Date("2018-04-30")这就是您额外获得30或31天的原因

答案 1 :(得分:1)

我认为您的问题来自于将错误的月号作为Date.UTC的参数。根据文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC,月份是0-11。如果您想在今天的日期调用函数,则必须将其称为new Date(2018, 3, 10, 12, 15)