SamSmith SamSmith - 10 months ago 124
HTML Question

Get AM/PM from HTML time input

First, I know that

<input type="time">
is not supported by IE10 or earlier, and Firefox, but this is only for testing purposes and I will make appropriate, cross-browser changes at another time.

For the time being, I have a HTML time input field. I am trying to extract the values from it including the hour, minutes and AM/PM. I can display the hour and minutes, but an AM/PM indication is not including.

I have an input as follows:

<input type="time" name="end-time" id="end-time">

I print out via
the input value as follows:


Upon input I receive an alert such as:


Notice that an AM/PM is not included in the

How can I get the AM/PM value from a HTML time input via Javascript?


As far as i know, We cannot get the value from the input directly in the meridian format of 'AM/PM'. Instead, we can write our own logic of converting the value in the AM/PM format and store/display it.

Below is the implementation of it.

var inputEle = document.getElementById('timeInput');

function onTimeChange() {
  var timeSplit = inputEle.value.split(':'),
  hours = timeSplit[0];
  minutes = timeSplit[1];
  if (hours > 12) {
    meridian = 'PM';
    hours -= 12;
  } else if (hours < 12) {
    meridian = 'AM';
    if (hours == 0) {
      hours = 12;
  } else {
    meridian = 'PM';
  alert(hours + ':' + minutes + ' ' + meridian);
<input type="time" onchange="onTimeChange()" id="timeInput" />