2013-05-13 134 views
5

我想通過更改以下代碼以12小時格式顯示時間。 我試過各種技術,但沒有運氣,希望找到你們的解決方案。在JavaScript中以12小時格式顯示時間

<script type="text/javascript"> 

$.fn.androClock = function() { 
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
var months = ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]; 
function getTime() { 
    var date = new Date(), 
    hour = date.getHours(); 
    return { 
    day: days[date.getDay()], 
    date: date.getDate(), 
    month: months[date.getMonth()], 
    hour: appendZero(hour), 
    minute: appendZero(date.getMinutes()) 
    }; 
} 
function appendZero(num) { 
    if (num < 10) { 
    return "0" + num; 
    } 
    return num; 
} 
function refreshClock() { 
    var now = getTime(); 
    $('#date').html(now.day + "<br>" + now.date + '. ' + now.month); 
    $('#time').html(now.hour + ":" + now.minute); 
    setTimeout(function() { 
    refreshClock(); 
    }, 10000); 
} 
refreshClock(); 
    }; 
$('#andro-clock').androClock(); 

</script> 
+0

的可能重複[替換軍事ŧ ime正常時間與Javascript](http://stackoverflow.com/questions/14415618/replace-military-time-to-normal-time-with-javascript) – 2013-05-13 19:14:42

回答

6

編輯

基於在拉胡爾的回答你的意見......

更新行:

hour: appendZero(hour),

hour: appendZero(((hour + 11) % 12) + 1)Live Demo


Live Demo

var formatTime = (function() { 
    function addZero(num) { 
     return (num >= 0 && num < 10) ? "0" + num : num + ""; 
    } 

    return function (dt) { 
     var formatted = ''; 

     if (dt) { 
      var hours24 = dt.getHours(); 
      var hours = ((hours24 + 11) % 12) + 1; 
      formatted = [formatted, [addZero(hours), addZero(dt.getMinutes())].join(":"), hours24 > 11 ? "pm" : "am"].join(" ");    
     } 
     return formatted; 
    } 
})(); 

alert(formatTime(new Date())); 
+0

謝謝你做的工作:) – 2013-05-22 14:56:56

4

DEMO

function getTime() { 
    var date = new Date(), 
    hour = date.getHours(); 
// var dd = "AM"; 
    var h = hour; 
    if (h > 12) { 
     h = hour-12; 
    //  dd = "PM"; 
    } 
    if (h == 0) { 
     h = 12; 
    } 
    return { 
    day: days[date.getDay()], 
    date: date.getDate(), 
    month: months[date.getMonth()], 
    hour: appendZero(h), 
    minute: appendZero(date.getMinutes()), 
    // dd: dd 
    }; 
} 


function refreshClock() { 
    var now = getTime(); 
    $('#date').html(now.day + "<br>" + now.date + '. ' + now.month); 
// $('#time').html(now.hour + ":" + now.minute+" "+now.dd); 
    $('#time').html(now.hour + ":" + now.minute); 
    setTimeout(function() { 
    refreshClock(); 
    }, 10000); 
} 
+0

這是我需要但我不需要上午/下午,只是12小時的時間。 – 2013-05-16 10:26:48

+0

查看更新的代碼。評論AP PM邏輯...如果它有幫助,請接受回答 – 2013-05-16 10:43:50

+0

謝謝你的努力rahul – 2013-05-22 15:01:09

相關問題