0

Currently shows the time in a 24 Hour clock format. Can this be chnaged to show a 12 Hour clock with AM or PM? Thanks

function startTime() {
  var today=new Date();
  var h=today.getHours();
  var m=today.getMinutes();
  var s=today.getSeconds();
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('txt').innerHTML = h+":"+m+":"+s;
  var t = setTimeout(function(){startTime()},500);
}

function checkTime(i) {
  if (i<10) {i = "0" + i};  // add zero in front of numbers < 10
  return i;
}
Robbert
  • 6,481
  • 5
  • 35
  • 61

3 Answers3

1

Yes, if you want to continue formatting manually, you can use something like this:

element.innerHTML = (h > 12 ? h - 12 : h) + ":" + m + ":" + s + (h >= 12 ? " PM" : " AM");
Matt
  • 1,377
  • 2
  • 13
  • 26
0
new Date().toLocaleTimeString()

/*  returned value: (String)

eg. 11:25:50 AM

or 8:08:41 PM */

kennebec
  • 102,654
  • 32
  • 106
  • 127
0
function startTime() {
        var today = new Date();
        var h = today.getHours();
        var m = today.getMinutes();
        var s = today.getSeconds();
        m = checkTime(m);
        s = checkTime(s);
        var ampm = h >= 12 ? 'pm' : 'am';
        h = h % 12;
        h = h ? h : 12;
        m = m < 10 ? '0' + m : m;
        var strTime = h + ':' + m + ':' + s +' ' + ampm;
        document.getElementById('txt').innerHTML = strTime;
        var t = setTimeout(function () { startTime() }, 500);
    }

    function checkTime(i) {
        if (i < 10) { i = "0" + i };  // add zero in front of numbers < 10
        return i;
    }

DEMO

Syed Ali Taqi
  • 4,898
  • 3
  • 34
  • 44