我想通过更改以下代码以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 :(得分: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()));
答案 1 :(得分: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);
}