-2

I have written code to get hours with am and pm, but getting wrong time like 13 pm and 14 pm

Expected op - 1 pm, 2pm ...

var d = new Date();
var h1 = d.getHours();
h1 = getTime(h1);

function getTime(number) {
  var strTime = "";
  var ampm = number >= 12 ? 'pm' : 'am';
  if (number == 0) {
    strTime = 12 + " am";
  }
  if (number != 0) {
    strTime = number + " " + ampm;
  }
  return strTime;
}

console.log(h1);
Praveen Kumar Purushothaman
  • 164,888
  • 24
  • 203
  • 252
krishna mohan
  • 111
  • 2
  • 13

1 Answers1

1

You need to do strTime = (number % 12) +" "+ ampm; when number != 0. Using modulus operator will give you the correct output as after 12 we need 1, 2, ... and so on.

var d = new Date();
var h1 = d.getHours();
h1 = getTime(h1);

function getTime(number) {
  var strTime = "";
  var ampm = number > 12 ? 'pm' : 'am';
  if (number == 0) {
    strTime = "12 am";
  } else if (number == 12) {
    strTime = "12 pm";
  } else {
    strTime = (number % 12) + " " + ampm;
  }
  return strTime;
}
console.log(h1);
Durga
  • 15,263
  • 2
  • 28
  • 52
Ankit Agarwal
  • 30,378
  • 5
  • 37
  • 62