Moment JS Clean

Example of parsing and formatting a Date with Moment JS.

by Eric L

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
<p>Curr: <input id="currInput" type="text" value="01:40am">
<!--Use Next day: <input id="nextDay" type="checkbox"></p> -->
<p>Start: <input id="startInput" type="text" value="06:30pm"></p>
<p>End: <input id="endInput" type="text" value="03:30am"></p>

<button onClick="runIt()">Run</button>

<hr>
<p>Curr: <span id="currTime"></span></p>
<p>Start: <span id="startTime"></span></p>
<p>End: <span id="endTime"></span></p>
<p>Is Between: <span id="isBetween"></span>

CSS

p {font-weight: bold}

JavaScript

// Moment JS - Formatting Guide: http://momentjs.com/docs/#/parsing/string-format/
function runIt()
{
  var currentTime= moment($("#currInput").val(), "HH:mm a");
  if ($('#nextDay').is(':checked'))
  {
   currentTime.add(1, "days");
  }
  
  var startTime = moment($('#startInput').val(), "HH:mm a");
  var endTime = moment($('#endInput').val(), "HH:mm a");
    
 if ( (startTime.hour() >=12 && endTime.hour() <=12 ) || endTime.isBefore(startTime) )
	{
		endTime.add(1, "days");       // handle spanning days endTime

		if (currentTime.hour() <=12 )
		{
			currentTime.add(1, "days");       // handle spanning days currentTime
		}
	}
  
  showTime(startTime, '#startTime')
  showTime(endTime, '#endTime')
  showTime(currentTime, '#currTime')
  var isBetween = currentTime.isBetween(startTime, endTime);
  console.log(isBetween)
  $('#isBetween').text(isBetween); 

}

function showTime(aMoment, anId)
{
	$(anId).html(aMoment.toString()); 
}