5

我想通过更改以下代码以 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>
4

2 回答 2

6

编辑

根据您在 rahul 的回答中的评论...

更新行:

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())); 
于 2013-05-13T19:05:31.210 回答
4

演示

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);
}
于 2013-05-13T19:04:19.710 回答