2016-10-03 3 views
-1

나는 자바 스크립트로 간단한 시간 계산기를 만들고 있습니다. 나는 단순화를 위해 24 시간 대신 12 시간으로 변환했지만, am/pm을 계산할 때 사용하는 코드는 항상 나타납니다. 왜 이런 일이 일어날까요? 여기 JS 오전/오후 시간은 항상 AM을 표시합니다

내 코드입니다 :

function solveTime(x) { 
    var suffixSolve = (utcHours + x) % 24; 
    var suffix = "am"; 
    if (utcHours > 12) { 
     var suffix = "pm"; 
    } 
    if (utcMinutes == 0) { 
     utcMinutesLead = "00"; 
    } 
    if (utcMinutes < 10) { 
     utcMinutesLead = "0" + utcMinutes; 
    } 
    var timeSolve = (((utcHours + x) + 11) % 12 + 1); 
    var timeTotal = timeSolve + ":" + utcMinutesLead + " " + suffix; 
    var utcMod = x; 
    if (utcMod > 0) { 
     utcMod = "+" + utcMod; 
    } 
    document.getElementById(x).innerHTML = "(UTC" + utcMod + ") " + timeTotal; 
} 

여기

var masterTimeUTC = new Date(); 
var utcHours = masterTimeUTC.getUTCHours(); 
var utcMinutes = masterTimeUTC.getUTCMinutes(); 
var utcSeconds = masterTimeUTC.getUTCSeconds(); 
var utcMinutesLead = masterTimeUTC.getUTCMinutes(); 

예 여기 utcHours 뒤에 코드 : http://codepen.io/markgamb/pen/gwGkbo

+1

는 x를 매개 변수 –

+0

UTC 수정, 전 등의 통과 무엇입니까 : UTC-8 – mark

+0

에 대한 -8 당신이 실시간 예를 들어 나를 설명 할 수는? –

답변

0

문제는 당신이 suffixSolve이보다 큰 여부를 확인해야한다 utcHours 대신 12를 사용하면값으로 인해 utcHours이 변경되지 않으므로. 시간을 앞뒤로 이동할 수 있으므로 변수를 생성하기 위해 shift 변수를 만들었습니다.

function solveTime(x) { 
 
    if (x < 0) { 
 
    var shift = 24 + x; 
 
    } else { 
 
    var shift = x; 
 
    } 
 

 
    var suffixSolve = (utcHours + shift) % 24; 
 
    var suffix = "am"; 
 
    if (suffixSolve > 12) { 
 
    suffix = "pm"; 
 
    } 
 
    if (utcMinutes == 0) { 
 
    utcMinutesLead = "00"; 
 
    } 
 
    if (utcMinutes < 10) { 
 
    utcMinutesLead = "0" + utcMinutes; 
 
    } 
 
    var timeSolve = (((utcHours + x) + 11) % 12 + 1); 
 
    var timeTotal = timeSolve + ":" + utcMinutesLead + " " + suffix; 
 
    var utcMod = x; 
 
    if (utcMod > 0) { 
 
    utcMod = "+" + utcMod; 
 
    } 
 
    document.getElementById(x).innerHTML = "(UTC" + utcMod + ") " + timeTotal; 
 
} 
 
var masterTimeUTC = new Date(); 
 
var utcHours = masterTimeUTC.getUTCHours(); 
 
var utcMinutes = masterTimeUTC.getUTCMinutes(); 
 
var utcSeconds = masterTimeUTC.getUTCSeconds(); 
 
var utcMinutesLead = masterTimeUTC.getUTCMinutes(); 
 
solveTime(4); 
 
solveTime(0); 
 
solveTime(-8);
<div id="4"></div> 
 
<div id="-8"></div> 
 
<div id="0"></div>

관련 문제