2014-07-02 57 views
2

我使用的是moment.js,並且希望創建一個數組,其中包含當前時間爲15分鐘的所有時間。例如:以15分鐘的增量獲取時間,達到特定時間

當前時間是下午1點35分。下一次是下午1:45,然後是2:00,2:15,2:30,2:45等,直到某個時刻。

我真的不知道如何做到這一點。任何人都可以指出我正確的方向嗎?

回答

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倍。如果你需要不同數量的間隔,你可以計算你想要的時間和現在的時間之間的差異。另外請注意,我不確切知道如果它幾乎是午夜,它會做什麼,儘管那樣很容易測試和編碼。

祝你好運!

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

+0

注意,因爲寫作時刻API的時間已經改變,因此量後指定的時間單位。 startTime.add(15,m); – nclord

相關問題