2016-09-04 85 views
0

爲什麼不會季度時間告訴我1,2,3,4?或所有的數字? 即時試圖讓每15分鐘。季度時間不會準確

是nextlaunch不計算下15分鐘吧?

爲什麼不用它計算正確的下15分鐘?

我希望它四分之一小時輸出所有的15分鐘。

X:15 = 1 
X:30 = 2 
X:45 = 3 
X:00 = 4 or 0 

目前的結果:

4/9/2016 @ 18:30:0 
fiddle.jshell.net/:60 2 
fiddle.jshell.net/:59 4/9/2016 @ 18:30:0 
fiddle.jshell.net/:60 2 
fiddle.jshell.net/:59 4/9/2016 @ 18:30:0 
fiddle.jshell.net/:60 2 
fiddle.jshell.net/:59 4/9/2016 @ 19:0:0 
fiddle.jshell.net/:60 0 

小提琴:https://jsfiddle.net/g2x1jmzb/

代碼:

var y = 1; 

    while(y <= 4) { 
     var interval = (900000 * y); 
    var nextlaunch = new Date(Math.ceil(new Date().getTime()/interval)*interval); 
    var datetime = "" + nextlaunch.getDate() + "/" 
       + (nextlaunch.getMonth()+1) + "/" 
       + nextlaunch.getFullYear() + " @ " 
       + nextlaunch.getHours() + ":" 
       + nextlaunch.getMinutes() + ":" 
       + nextlaunch.getSeconds(); 

    quarterHours = Math.round(nextlaunch.getMinutes()/15); 
    console.log(datetime); 
    console.log(quarterHours); 
    y++; 
    } 
+1

你期望什麼? –

+1

歡迎來到Stack Overflow!請參考[遊覽],四處看看,並仔細閱讀[幫助],尤其是[*我如何提出一個好問題?](/ help/how-to-ask) –

+0

我會期待nextlaunch有時間爲4個未來15分鐘, ,但在這種情況下,應該是4個半小時。 15 = 1 30 = 2 45 = 3 00 = 4/0 但這不起作用 – user3199857

回答

0

您可以使用此代碼:

function pad(n) { 
 
    return ('0'+n).substr(-2); 
 
} 
 
    
 
var interval = 15 * 60 * 1000; // = # miliseconds in 15 minutes 
 
var nextlaunch = new Date(Math.ceil(new Date().getTime()/interval)*interval); 
 
for (var y = 1; y <= 4; y++) { 
 
    var datetime = pad(nextlaunch.getDate()) + "/" 
 
       + pad((nextlaunch.getMonth()+1)) + "/" 
 
       + nextlaunch.getFullYear() + " @ " 
 
       + pad(nextlaunch.getHours()) + ":" 
 
       + pad(nextlaunch.getMinutes()) + ":" 
 
       + pad(nextlaunch.getSeconds()); 
 
    quarterHours = Math.round(nextlaunch.getMinutes()/15); 
 
    console.log(datetime); 
 
    nextlaunch.setMinutes(nextlaunch.getMinutes()+15); 
 
}

的想法是,通過添加15分鐘,它增加nextlaunch變量的循環。它的初始值可以在循環之外設置,並使用適當的時間間隔。

我添加了一個函數來在日期格式中用零填充正確的填充。您可以考慮使用庫來處理日期,如moment.js

+0

https://jsfiddle.net/g2x1jmzb/8/ @trincot它的工作原理。但爲什麼這段代碼會忽略新的時間? – user3199857

+0

因爲你輸出的是日期對象,而不是字符串格式的日期。在第一種情況下,它顯示UTC日期。所以,最好先格式化日期,並顯示'datetime'而不是'nextlaunch'。 – trincot