我遇到了这个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")));
我无法弄清楚额外日子的来源,感谢任何帮助,谢谢
答案 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)
。