2017-05-08 30 views
2

我正在創建這個時鐘。確保時鐘說12:01而不是0:01

代碼非常簡單。它通過使用js運行如下。問題在於時鐘在12-1之間刻度,例如顯示下午0:01。這是它應該做的。不過,我想要這樣說,下午12:01。我認爲這對用戶會更有意義。

同樣,如果是早上的時間,那麼時鐘應該說上午12:01而不是上午0:01。

絕對1:01 am或1:01 pm是好的。

如何解決在代碼中?我有一個codepen http://codepen.io/hellouniverse/pen/GraxaQ

"use strict"; 
var getDate = function getDate() { 
    var date = new Date(); 

    var month = date.getMonth(); 
    var day = date.getDate(); 
    var hour = date.getHours(); 
    var minutes = date.getMinutes(); 

    var monthNames = [ 
     "January", 
     "February", 
     "March", 
     "April", 
     "May", 
     "June", 
     "July", 
     "August", 
     "September", 
     "October", 
     "November", 
     "December" 
    ]; 
    var timePeriod = hour < 12 ? "am" : "pm"; 
    var dateString; 
    var timeString; 

    hour = hour % 12; 
    hour = hour == 0 ? 1 : hour; 

    hour = (hour < 10 ? "0" : "") + hour; 
    minutes = ("0" + minutes).slice(-2); 

    dateString = monthNames[month] + " " + day; 
    timeString = hour + ":" + minutes + " " + timePeriod; 

    document.getElementById("js-date").innerHTML = dateString; 
    document.getElementById("js-time").innerHTML = timeString; 
}; 

if ($("#js-nova_evo_clock").length > 0) { 
    setInterval(function() { 
     getDate(); 
    }, 500); 
} 

而且,HTML看起來像下面

<div class="pane-nova-widgets-nova-clock"> 
<div class="nova_evo_clock" id="js-nova_evo_clock"><span id="js-time">&nbsp;</span><span class="seperator-clock">,</span><span id="js-date">&nbsp;</span></div></div> 

而且,如果你認爲代碼可以變得更好,然後隨時提出

+0

你可以使用moment.js嗎? –

+0

不,我不會爲此添加另一個像moment.js這樣的js。我們的團隊非常清楚自定義的js文件。 –

+0

好的。我會看看邏輯。 –

回答

4

我唯一發現錯誤是這樣的

hour = hour == 0 ? 1 : hour; 

哪些人已經是

hour = hour == 0 ? 12 : hour;