根据this问题,我写了“我的代码”(没有Math.abs,我不需要它):
var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date("2011", "09", "28"); // 28 september 2011
var secondDate = new Date("2011", "09", "30"); // 30 september 2011
var notti = ((secondDate.getTime() - firstDate.getTime()) / (oneDay));
if (notti < 1)
notti = 1;
else
notti = Math.round(notti);
alert(notti);
并打印 2(正确)。
现在,如果我这样做:
var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date("2011", "09", "28"); // 28 september 2011
var secondDate = new Date("2011", "10", "01"); // 01 october 2011
var notti = ((secondDate.getTime() - firstDate.getTime()) / (oneDay));
if (notti < 1)
notti = 1;
else
notti = Math.round(notti);
alert(notti);
它打印 4。为什么是 4?应该是3... 你知道这个问题吗?
最佳答案
日期构造函数(和其他日期方法)中的月份参数从 [0.11] 而不是 [1..12] 开始,因此:
new Date("2011", "09", "28"); // 28 september 2011
实际上是10 月 28 日星期五
,而不是 9 月。
关于javascript - 为什么这个日期操作(两个日期之间的天数)返回这个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571977/