javascript - 如何获取 JavaScript Date 对象中的日期差异?
问题描述
考虑我有一个日期数组,例如:
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, 2, 2]
但我需要输出类似
[1,2,3,4]
我需要在每个日期差异上加上加一。我怎样才能做到这一点?
解决方案
格式为 YYYY-MM-DD 的日期被解析为 UTC,其中每天(在 ECMAScript 中)的长度正好是 8.64e7 毫秒,这使得简单的算术变得非常简单。:-)
由于日期是一整天并被视为 UTC,因此您只需将日期相减并除以 8.64e7 即可获得全天差异。
此外,您似乎想要与第一次约会有所不同,因此请保持不变,例如
let arr = [];
let 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(1 + (abc[i+1] - abc[0])/8.64e7);
}
console.log(arr);
推荐阅读
- unity3d - 灯到花箱的距离
- ios - 手势识别器正在影响其他功能
- swift - 使用 Mailgun 使用 Swift 发送电子邮件
- python - Python - 如何删除文本文件中的特定行?
- python - 散点图中数据大小的问题
- javascript - 如果 .textContent 包含 X 然后单击
- swift - 返回一个值并且在同一个函数中还有一个转义参数是否被认为是不好的做法?
- python - 如何使用 Python 和 JSON 为 API POST 查询设置参数
- c# - 使用三元运算让我的代码更干净
- javascript - 使用 Webpack 5 Boilerplate 构建 Chrome 扩展时如何对其进行 chrome.runtime.reload()?