在 JavaScript 中以 12 小时格式显示时间
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16529054/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Display Time in 12 Hour Format in JavaScript
提问by Apple Arbaz
I want to display Time in 12 hour format by altering the following code. i Tried Various Techniques but no luck, hope to find The solution from u guys .
我想通过更改以下代码以 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>
回答by Brandon Boone
EDIT
编辑
Based on your comments in rahul's answer...
根据您在 rahul 的回答中的评论...
Update the line:
更新行:
hour: appendZero(hour),
hour: appendZero(hour),
to
到
hour: appendZero(((hour + 11) % 12) + 1)
Live Demo
hour: appendZero(((hour + 11) % 12) + 1)
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()));
回答by rahul maindargi
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);
}