2016-10-03 3 views
-1

Я делаю простой калькулятор времени в javascript. Я просто конвертировал время в 12-часовое, а не 24-часовое время, однако код, который я для вычисления am/pm, всегда показывает am. Любая причина, почему это происходит?JS AM/PM раз всегда показывает 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; 
} 

и вот код позади utcHours

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

Пример здесь: http://codepen.io/markgamb/pen/gwGkbo

+1

Что такое х ваш переход в качестве параметра –

+0

модификатора МСВ, напр: -8 для UTC -8 – mark

+0

Можете ли вы объяснить мне с реального времени, например? –

ответ

0

Этот вопрос вы должны проверять ли suffixSolve больше 12 вместо utcHours, потому что utcHours не изменяется из-за значения x. Поскольку вы можете сдвинуть часы вперед и назад, я создал переменную 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>

Смежные вопросы