Reputation: 55
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 .
<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>
Upvotes: 5
Views: 12210
Reputation: 16472
EDIT
Based on your comments in rahul's answer...
Update the line:
hour: appendZero(hour),
to
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()));
Upvotes: 6
Reputation: 5655
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);
}
Upvotes: 4