我已经搜索了很多找到这个答案,但找不到一个。
我有 2 个日期,我想计算它们之间的天数
但我也希望计算结束日。
例子 :
- 我和我的妻子从 [1 月 20 日] 到 [1 月 26 日] 去酒店,所以总共 7 天。
我发现唯一有效的代码是:
Math.round((b - a) / ( 1000 * 60 * 60 * 24)) +1
在哪里 :
var a= new Date (y,0,20);
var b= new Date (y,0,26);
我还做了一个嵌套循环来测试 150 年内的所有月份,它工作正常。
var y = 1970;
var m = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
for(var i = 0; i < 150; i++)
{
for(var j = 0; j < 12; j++)
{
var a = new Date(y + i, m[j], 20);
var b = new Date(y + i, m[j], 26);
var days = Math.round((b - a) / (1000 * 60 * 60 * 24)) + 1;
if(days != 7) console.log(i + y); //tell me if result is unexpected.
}
}
console.log('-FINISH-' + new Date().getTime())
那么问题出在哪里?
我不知道数学函数是round
如何做到这一点的。
我们在这里谈论毫秒,我看不出圆形行为在哪里给了我正确的结果。
(ps - 忘记 ceil 和 floor ,它们在这里没有帮助并且结果不一致),我也尝试在b
值上加一天,并使用 ceil || 地板但没有成功