如何在JavaScript日期对象中获取日期差?

如何在JavaScript日期对象中获取日期差?,javascript,Javascript,假设我有一系列的日期,例如: abc = [new Date("2015-03-01"),new Date("2015-03-02"),new Date("2015-03-03"),new Date("2015-03-04")] 输出: [Sun Mar 01 2015 05:30:00 GMT+0530 (India Standard Time), Mon Mar 02 2015 05:30:00 GMT+0530 (India Standard Time), Tue Mar 03 2015

假设我有一系列的日期,例如:

abc = [new Date("2015-03-01"),new Date("2015-03-02"),new Date("2015-03-03"),new Date("2015-03-04")]
输出:

[Sun Mar 01 2015 05:30:00 GMT+0530 (India Standard Time), Mon Mar 02 2015 05:30:00 GMT+0530 (India Standard Time), Tue Mar 03 2015 05:30:00 GMT+0530 (India Standard Time), Wed Mar 04 2015 05:30:00 GMT+0530 (India Standard Time)]
我尝试推送两个日期之间的差异,并尝试将数据存储在一个新数组中。 这是我尝试过的

var arr = [];
abc = [new Date("2015-03-01"),new Date("2015-03-01"),new Date("2015-03-02"),new Date("2015-03-03"),new Date("2015-03-04")];

for (let i = 0; i < abc.length-1; i++){
    arr.push((abc[i+1].getDate() - abc[i].getDate())+1)
}
但我需要这样的输出

[1,2,3,4] 
我需要在每个日期差后面加上一个。我怎样才能做到这一点呢?

这就是你想要的吗

abc=[新日期(“2015-03-01”)、新日期(“2015-03-01”)、新日期(“2015-03-02”)、新日期(“2015-03-03”)、新日期(“2015-03-04”);
const result=abc.slice(1.map)(日期=>~((日期abc[0])/(24*60*60*1000))+1)

console.log(result)
格式为YYYY-MM-DD的日期被解析为UTC,其中每天(在ECMAScript中)的长度正好是8.64e7 ms,这使得简单的算术变得简单。:-)

由于日期是整天,并被视为UTC,因此您只需将日期彼此相减,然后除以8.64e7即可得到整天的差值

另外,你似乎想要与第一次约会的差异,所以保持不变,例如

让arr=[];
设abc=[新日期(“2015-03-01”)、新日期(“2015-03-01”)、新日期(“2015-03-02”)、新日期(“2015-03-03”)、新日期(“2015-03-04”);
for(设i=0;i控制台日志(arr)是否要获取数组中第一个日期和每隔一个日期之间的差值?因为目前,你得到的是两个相邻日期之间的差异。这不适用于不同月份的日期。是的,这不适用于两个不同月份的日期
[1,2,3,4]