获得15分钟增量的时间,直到特定时间

时间:2014-07-02 18:21:41

标签: javascript momentjs

我正在使用moment.js,并希望创建一个数组,其中包含当前时间间隔为15分钟的所有时间。例如:

当前时间是下午1:35。下一次是下午1:45,然后是2:00,2:15,2:30,2:45等,直到某一点为止。

我真的不知道该如何做到这一点。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:3)

试试这个:

function calculate(endTime) {
    var timeStops = [];
    var startTime = moment().add('m', 15 - moment().minute() % 15);

    while(startTime <= endTime){
        timeStops.push(new moment(startTime));
        startTime.add('m', 15);
    }

    return timeStops;
}

用法:

calculate(moment().add('h', 1));

这将返回每个小时的时间间隔(就像你说的那样)h:15,h:30,h:45,h + 1:00 ......它还包含秒数,所以你可以将秒数设置为0因为我不确定你是否需要它们。

You also can see working example on FIDDLE

答案 1 :(得分:1)

我对momentjs并不熟悉,但在纯Javascript中这相对容易。要获得最接近的15分钟,您可以use this solution here。然后,如果你把它放在日期变量中,你可以根据需要多加15分钟!因此得到的Javascript是:

var d = new Date();
var result = "";
for (var idx = 0; idx < 3; idx++)
{
    var m = (((d.getMinutes() + 7.5)/15 | 0) * 15) % 60;
    var h = ((((d.getMinutes()/105) + .5) | 0) + d.getHours()) % 24;
    d = new Date(d.getYear(), d.getMonth(), d.getDay(), h, m, 0, 0);

    if (idx > 0) result += ", ";
    result += ("0" + h).slice(-2) + ":" + ("0" + m).slice(-2);

    d = addMinutes(d, 15);
}

SEE THIS IN A FIDDLE

备注 - 我只是随意添加了15分钟3次。如果需要不同的间隔数,您可以计算所需时间与现在之间的时间差。另请注意,如果几乎是午夜,我不确切知道这会做什么,尽管这很容易测试和编码。

祝你好运!