2014-02-08 110 views
0

我想基於兩次(在military format)做一個JavaScript循環,並且該循環必須返回正常時間。軍事時間格式的JavaScript循環

舉例來說,我有這個兩個瓦爾:

var start_time = 1400; // That mens 14:00 or 2pm 
var end_time = 400; // Or 0400 (but it's the same the browser. It's 04:00 or 4 am 

我想做一個循環,for或while,我想給其結果是:

14:00 
15:00 
16:00 
.... 
3:00 
4:00 

如何我能做到嗎?謝謝!

+1

只是循環從14到4,然後jQuery和span標記*顯示*在軍事時間的價值:'I + 「:00」'在這個微不足道的案例中就足夠了。 – user2864740

+0

用於處理Javascript日期的所有方法:http://www.w3schools.com/jsref/jsref_obj_date.asp – Max

回答

4
start_time = start_time/100; 
end_time = end_time/100; 

var x = start_time; 
while(x >= start_time || x <= end_time) { 
    if(x > 23) { 
     x = 0; 
    } 
    console.log(x + ":00"); 
    x = x + 1; 
} 

http://jsfiddle.net/4R8Dr/1/

+1

您的循環永遠不會啓動。如果x以start_time(14)開始,則第一個條件不會通過,第二個條件(end_time == 4)也不會。 –

+0

哎呀!這裏是小提琴http://jsfiddle.net/4R8Dr/1/ –

+1

感謝您更新您的答案,並提供小提琴。 –

0

總的想法(改進的餘地):

var start = 1400; 
var end = 400; 

if (start > end){ 
    end = end + 2400; 
} 

for (var i = start; i <= end; i += 100) 
{ 
    var c = (i % 2400); 
    var s = c + ''; 
    console.log(s.substring(0, c < 1000 ? 1 : 2) + ':00'); 
} 

輸出與節點:

14:00 
15:00 
16:00 
17:00 
18:00 
19:00 
20:00 
21:00 
22:00 
23:00 
0:00 
1:00 
2:00 
3:00 
4:00 
0

循環在一個用於通過100遞增小時。 只需確保在到達24:00時將循環變量重置爲0:00

function loopHours(start_time, end_time) { 

    function write(hour){ 
     console.log((hour/100) + ":00");  
    } 

    var hour = start_time; 

    for (; hour != end_time; hour += 100) { 

     if (hour >= 2400) { 
      hour = 0; 
     }   

     write(hour); 

    } 

    write(end_time); 
} 
0
getFormattedTime = function (fourDigitTime) { 
    var hours24 = parseInt(fourDigitTime.substring(0, 2), 10); 
    var hours = ((hours24 + 11) % 12) + 1; 
    var amPm = hours24 > 11 ? 'pm' : 'am'; 
    var minutes = fourDigitTime.substring(2); 

    return hours + ':' + minutes + amPm; 
}; 
$('span.mil_time').html(function (i, oldHtml) { 
    return getFormattedTime(oldHtml); 
}); 

加上一個循環,增加在2400 /減少了100和復位變量爲0000會做你的需要。不要忘了此功能,需要id爲 「mil_time」

http://jsfiddle.net/FsN6L/

相關問題