如何计算未来和今天特定日期之间的天数?

时间:2017-08-07 23:13:03

标签: javascript

这是我尝试过的。我得到21这绝对是不对的。我究竟做错了什么?

var today = new Date();
var TrumpsStateVisit = new Date('March 12, 2018 12:00:00');
var daysTillTrumpsStateVisit = TrumpsStateVisit.getTime() - today.getTime();
daysTillTrumpsStateVisit = (daysTillTrumpsStateVisit / 864000000); //number of milleseconds in a day

var $countDownTillTrumpsChinaTrip = ('#countDownTillTrumpsChinaTrip');
$countDownTillTrumpsChinaTrip.textContent = Math.floor(daysTillTrumpsStateVisit);

2 个答案:

答案 0 :(得分:0)

所以关闭!

主要问题是一天没有864000000毫秒,只有86400000;你有一个零太多了。

夏令时出现次要问题;不是每天都有24小时,所以你需要围绕结果,而不是地板

var today = new Date();
var TrumpsStateVisit = new Date('March 12, 2018 12:00:00');
var daysTillTrumpsStateVisit = TrumpsStateVisit.getTime() - today.getTime();
daysTillTrumpsStateVisit = (daysTillTrumpsStateVisit / 86400000); //number of milleseconds in a day

console.log(Math.round(daysTillTrumpsStateVisit));

希望这有帮助! :)

答案 1 :(得分:0)

这不起作用的主要原因是一天中的毫秒数是100 * 60 * 60 * 24 = 86400000。您还应该以不同的时间区域构建日期,因为用户浏览器可能不是您想要的任何时区,2018年3月12日12:00。

然而,在减去日期时会出现许多与时间变化和其他问题相关的解决问题,因此您应该使用专门处理日期和时间的https://momentjs.com/等库。