The function presented in this page, diffDateTime(), can be used to get the difference between 2 dates, time and date in JavaScript. This function receives two parameters: the start and ending datetime. It can be used various date / time formats: Unix Timestamp (in milliseconds), or a string containing an English datetime format. It can also be used a string with the words: NOW for current date-time, and TOMORROW for the next day (the 0:0:1 time); see in the examples presented after the code of this function.

Function to get the difference between 2 datetimes

Returns an object containing date and time difference: number of days, hours, minutes, seconds, total hours, total minutes, and total seconds (see the comments in code).
/* Function to calculate time difference between 2 datetimes (in Timestamp-milliseconds, or string English Date-Time)
 It can also be used the words: NOW for current date-time, and TOMORROW for the next day (the 0:0:1 time)
 Returns an object with this items {days, hours, minutes, seconds, totalhours, totalmin, totalsec}
*/
function diffDateTime(startDT, endDT){
 // JavaScript & jQuery Course - http://coursesweb.net/javascript/
  // if paramerer is string, only the time hh:mm:ss (with, or without AM/PM), create Date object for current date-time,
  // and adds hour, minutes, seconds from paramerer
  //else, if the paramerer is "now", sets Date object with current date-time
  //else, if the paramerer is "tomorrow", sets Date object with current date, and the hour 24 + 1 second
  // else create Date object with date time from startDT and endDT
  if(typeof startDT == 'string' && startDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[amp ]{0,3}$/i)){
    startDT = startDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/);
    startDT = startDT.toString().split(':');
    var obstartDT = new Date();
    obstartDT.setHours(startDT[0]);
    obstartDT.setMinutes(startDT[1]);
    obstartDT.setSeconds(startDT[2]);
  }
  else if(typeof startDT == 'string' && startDT.match(/^now$/i)) var obstartDT = new Date();
  else if(typeof startDT == 'string' && startDT.match(/^tomorrow$/i)){
    var obstartDT = new Date();
    obstartDT.setHours(24);
    obstartDT.setMinutes(0);
    obstartDT.setSeconds(1);
  }
  else var obstartDT = new Date(startDT);

  if(typeof endDT == 'string' && endDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[amp ]{0,3}$/i)){
    endDT = endDT.match(/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/);
    endDT = endDT.toString().split(':');
    var obendDT = new Date();
    obendDT.setHours(endDT[0]);
    obendDT.setMinutes(endDT[1]);
    obendDT.setSeconds(endDT[2]);  
  }
  else if(typeof endDT == 'string' && endDT.match(/^now$/i)) var obendDT = new Date();
  else if(typeof endDT == 'string' && endDT.match(/^tomorrow$/i)){
    var obendDT = new Date();
    obendDT.setHours(24);
    obendDT.setMinutes(0);
    obendDT.setSeconds(1);
  }
  else var obendDT = new Date(endDT);

  // gets the difference in number of seconds
  // if the difference is negative, the hours are from different days, and adds 1 day (in sec.)
  var secondsDiff = (obendDT.getTime() - obstartDT.getTime()) > 0 ? (obendDT.getTime() - obstartDT.getTime()) / 1000 :  (86400000 + obendDT.getTime() - obstartDT.getTime()) / 1000;
  secondsDiff = Math.abs(Math.floor(secondsDiff));

  var oDiff = {};     // object that will store data returned by this function

  oDiff.days = Math.floor(secondsDiff/86400);
  oDiff.totalhours = Math.floor(secondsDiff/3600);      // total number of hours in difference
  oDiff.totalmin = Math.floor(secondsDiff/60);      // total number of minutes in difference
  oDiff.totalsec = secondsDiff;      // total number of seconds in difference

  secondsDiff -= oDiff.days*86400;
  oDiff.hours = Math.floor(secondsDiff/3600);     // number of hours after days

  secondsDiff -= oDiff.hours*3600;
  oDiff.minutes = Math.floor(secondsDiff/60);     // number of minutes after hours

  secondsDiff -= oDiff.minutes*60;
  oDiff.seconds = Math.floor(secondsDiff);     // number of seconds after minutes

  return oDiff;
}
- Examples diffDateTime() function Usage, with various date-time formats. The results will be added into a HTML element with id="testdtdiff".
<div id="testdtdiff"></div>
<script type="text/javascript"><!--
// Here add the diffDateTime() function

  /* 1.) Difference between 2 times (in hours:min:sec) */
var objDiff = diffDateTime('8:35:6', '8:55:34 AM');
var dtdiff = objDiff.days+ ' days, '+ objDiff.hours+ ' hours, '+ objDiff.minutes+ ' minutes, '+ objDiff.seconds+ ' seconds';
var total_hours = 'Total Hours: '+ objDiff.totalhours;
var total_min = 'Total minutes: '+ objDiff.totalmin;

// adds the result in #testdtdiff element
document.getElementById('testdtdiff').innerHTML += '1.) <b>"8:35:6", "8:55:34"</b><br/>Difference: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 2.) Difference between a previous date-time and "now" (current datetime) */
var objDiff = diffDateTime('07/19/2012 14:10:00', 'now');
var dtdiff = objDiff.days+ ' days, '+ objDiff.hours+ ' hours, '+ objDiff.minutes+ ' minutes, '+ objDiff.seconds+ ' seconds';
var total_hours = 'Total Hours: '+ objDiff.totalhours;
var total_min = 'Total minutes: '+ objDiff.totalmin;

// adds the result in #testdtdiff element
document.getElementById('testdtdiff').innerHTML += '<br/><br/>2.) <b>"07/19/2012 14:10:00", "now"</b><br/>Difference: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 3.) Difference between "now" (current datetime) and "tomorrow" (1st second in the next day) */
var objDiff = diffDateTime('NOW', 'TOMORROW');
var dtdiff = objDiff.days+ ' days, '+ objDiff.hours+ ' hours, '+ objDiff.minutes+ ' minutes, '+ objDiff.seconds+ ' seconds';
var total_hours = 'Total Hours: '+ objDiff.totalhours;
var total_min = 'Total minutes: '+ objDiff.totalmin;

// adds the result in #testdtdiff element
document.getElementById('testdtdiff').innerHTML += '<br/><br/>3.) <b>"NOW", "TOMORROW"</b><br/>Difference: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 4.) Difference between 2 date nd time */
var objDiff = diffDateTime('August 25, 2012 14:10:00', '09/18/2012 08:25:00');
var dtdiff = objDiff.days+ ' days, '+ objDiff.hours+ ' hours, '+ objDiff.minutes+ ' minutes, '+ objDiff.seconds+ ' seconds';
var total_hours = 'Total Hours: '+ objDiff.totalhours;
var total_min = 'Total minutes: '+ objDiff.totalmin;

// adds the result in #testdtdiff element
document.getElementById('testdtdiff').innerHTML += '<br/><br/>4.) <b>"August 25, 2012 14:10:00", "09/18/2012 08:25:00"</b><br/>Difference: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;

  /* 5.) Difference between 2 date-time, with Timestamp (in milliseconds) */
var objDiff = diffDateTime(1348012438000, 1348029429000);
var dtdiff = objDiff.days+ ' days, '+ objDiff.hours+ ' hours, '+ objDiff.minutes+ ' minutes, '+ objDiff.seconds+ ' seconds';
var total_hours = 'Total Hours: '+ objDiff.totalhours;
var total_min = 'Total minutes: '+ objDiff.totalmin;

// adds the result in #testdtdiff element
document.getElementById('testdtdiff').innerHTML += '<br/><br/>5.) <b>1348012438000, 1348029429000</b><br/>Difference: '+ dtdiff+ '<br/>'+ total_hours+ '<br/>'+ total_min;
--></script>
To see the results of these examples, click

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which tag adds a new line into a paragraph?
<b> <br> <p>
First line ...<br>
Other line...
Which CSS property can be used to add space between letters?
text-size word-spacing letter-spacing
#id {
  letter-spacing: 2px;
}
What JavaScript function can be used to get access to HTML element with a specified ID?
getElementById() getElementsByTagName() createElement()
var elm = document.getElementById("theID");
var content = elm.innerHTML;
alert(content);
Click on the "echo" correct instruction.
echo "CoursesWeb.net" echo "CoursesWeb.net"; echo ""CoursesWeb.net";
echo "Address URL: http://CoursesWeb.net";
Difference between two Dates - Time and Date

Last accessed pages

  1. Select in MySQL, Output results in HTML Table (1419)
  2. Golf Putt It In (739)
  3. Disable button and Enable it after specified time (5129)
  4. Flash Games - Free online Games (22975)
  5. Move image from an element /tag to another (1637)

Popular pages this month

  1. Qwop (3219)
  2. Get Attribute (ID, Class, Name, Title, Src) with jQuery (2547)
  3. Get the value of the selected /checked checkboxes in a form (1608)
  4. Insert, Select and Update NULL value in MySQL (1423)
  5. Add, Change, and Remove Attributes with jQuery (1301)