2014-02-08 2 views
0

JavaScript 루프를 두 번 (military format) 기반으로하고 싶습니다. 그리고 그 루프는 정상적인 시간을 반환해야합니다.군사 시간 형식의 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 

내가 또는 동안 루프를 수행 할을, 나는 결과이 같이주고 싶다 :

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

방법 나는 그걸 할 수있어? 감사!

+1

그냥 루프 (14)에서 4 다음으로 jQuery를 스팬 태그를 필요로 * 표시 * 군사 시간의 값 :'내가 + ": 00"' 이 사소한 경우에 충분할 것입니다. – user2864740

+0

자바 스크립트 datetimes 조작을위한 모든 방법 : 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)으로 시작하면 첫 x 째 조건이 전달되지 않고 두 x 째 조건 (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); 
}); 

플러스 /는 당신이 필요로 할 것입니다 0000에 2400에서 100으로 재설정하여 변수를 감소 증가 루프. 이 기능을 잊지 말라하면 ID가 "mil_time"

http://jsfiddle.net/FsN6L/

관련 문제