首页 > 解决方案 > 如何获得两个不同日期之间的分钟数?

问题描述

嗨,我正在使用 Javascript,我想获取两个日期之间的每一分钟,例如:

firstDate: 2019-04-02 02:03:00
secondDate: 2019-04-03 03:04:00

所以我的最终输出结果应该像这样返回:

2019-04-02 02:03:00
2019-04-02 02:04:00
2019-04-02 02:05:00
.
.
.
2019-04-03 03:04:00

这是我尝试过的代码

var boxingDay = new Date("2019-04-02 02:03:00");
var nextWeek  = new Date("2019-04-03 03:04:00");

function getDatesRange(startDate, stopDate){
    const ONE_DAY = 60*1000;
    var days= [];
    var currentDate = new Date(startDate);
    while (currentDate <= stopDate) {
        days.push(new Date (currentDate));
        currentDate = currentDate - 1 + 1 + ONE_DAY;
    }
    return days.join("\n");
}

console.log(getDatesRange(boxingDay,nextWeek))

/* var map = getDates(boxingDay, nextWeek).map((times) => {
console.log(Date.parse(times))
}) */

/* console.log((getDates( boxingDay, nextWeek ))); */

问题是我得到了正确的输出,但我需要数组的形式,如下所示,如果我正在重用,它会重用该函数,它会返回一个空数组。

[[2019-04-02 02:03:00],[2019-04-02 02:04:00].....]

任何解决方案 TIA。

标签: javascriptnode.js

解决方案


使用您的代码作为基础,您可以按如下方式执行此操作(注意我使用的是.toISOString(),您可以根据需要更改此设置):

const boxingDay = new Date("2019-04-02 02:03:00");
const nextWeek  = new Date("2019-04-03 03:04:00");

function getDatesRange(startDate, stopDate){
    const ONE_MINUTE = 60*1000;
    const days= [];
    let currentDate = new Date(startDate);
    while (currentDate <= stopDate) {
        days.push([currentDate.toISOString()]);
        currentDate.setTime(currentDate.getTime() + ONE_MINUTE);
    }
    return days;
}

console.log(getDatesRange(boxingDay,nextWeek));


推荐阅读