The function presented in this page, diffDateTime(), can be used to get the difference between 2 dates, time and date . This function receives two parameters: the start and ending datetime between will get the difference. It can be used various date / time formats: Unix Timestamp, or a string containing about any English textual datetime description.

Function to get the difference between 2 datetimes

Returns an array containing a string with a textual reprezentation of the difference, and separately; the days, hours, minutes, seconds, total hours, total minutes, and total seconds (see in the examples presented bellow).

- Click to select it.
/* Function that returns the difference between two date-time
 $start / $end can be in Unix Timestamp, or string containing about any English textual datetime description
 Returns an array containing a string with a textual reprezentation of the difference,
 and separately: the days, hours, minutes, seconds, total hours, total minutes, and total seconds
*/
function diffDateTime($start, $end) {
 // PHP-MySQL Course - http://coursesweb.net/php-mysql/
  // sets to use $start and $end as Unix Timestamp
  if(!is_int($start)) $start = strtotime($start);
  if(!is_int($end)) $end = strtotime($end);

  // if the difference is negative, the hours are from different days, and adds 1 day (in sec.)
  $diff = ($end >= $start) ? $end - $start : 86400 + $end - $start;

  // define the number of days, hours, minutes and seconds in difference
  $d = floor($diff / 86400);
  $h = floor(abs($diff - $d*86400)/3600);
  $m = floor(abs($diff - $d*86400 - $h*3600)/60);
  $s = $diff % 60;

  // sets the words, singular or plural
  $dstr =  ($d == 1) ? ' day ' : ' days ';
  $hstr =  ($h == 1) ? ' hour ' : ' hours ';
  $mstr =  ($m == 1) ? ' minute ' : ' minutes ';
  $sstr =  ($s == 1) ? ' second ' : ' seconds ';

  // setings for the string added in textual reprezentation of the difference
  $sdiff_d = ($d != 0) ? $d.$dstr : '';
  $sdiff_h = ($h != 0) ? $h.$hstr : '';
  $sdiff_m = ($m != 0) ? $m.$mstr : '';

  return array(
   'diff' => $sdiff_d. $sdiff_h. $sdiff_m. $s.$sstr,
   'days' => $d, 'hours'=>$h, 'min'=>$m, 'sec'=>$s,
   'totalhours' => floor($diff/3600), 'totalmin' => floor($diff/60), 'totalsec'=>$diff
  );
}
- Examples usage diffDateTime() function, with various date-time formats:
<?php
// Here adds the diffDateTime() function

$df1 = diffDateTime('8:35:6', '8:55:34');          // difference between 2 times (in hours:min:sec)
$df2 = diffDateTime('07/19/2012 14:10:00', 'now');      // difference between a previous date-time and now
$df3 = diffDateTime('25 August 2012 14:10:00', '18-09-2012 08:25:00');     // difference between 2 date-times
$df4 = diffDateTime(1348012438, 1348029429);      // difference between 2 date-time, with Timestamp

// Test, see the array with data for each difference

var_export($df1);
/*
array (
 'diff' => '20 minutes 28 seconds ',
 'days' => 0, 'hours' => 0, 'min' => 20, 'sec' => 28,
 'totalhours' => 0, 'totalmin' => 20, 'totalsec' => 1228
)
*/

var_export($df2);
/*
array (
 'diff' => '61 days 16 hours 9 minutes 20 seconds ',
 'days' => 72, 'hours' => 16, 'min' => 9, 'sec' => 20,
 'totalhours' => 1744, 'totalmin' => 104649, 'totalsec' => 6278960
)
*/

var_export($df3);
/*
array (
 'diff' => '23 days 18 hours 15 minutes 0 seconds ',
 'days' => 23, 'hours' => 18, 'min' => 15, 'sec' => 0,
 'totalhours' => 570, 'totalmin' => 34215, 'totalsec' => 2052900
)
*/

var_export($df4);
/*
array (
 'diff' => '4 hours 43 minutes 11 seconds ',
 'days' => 0, 'hours' => 4, 'min' => 43, 'sec' => 11,
 'totalhours' => 4, 'totalmin' => 283, 'totalsec' => 16991
)
*/
?>
- Another similar function that returns also Years, Months, and Weeks between 2 date-times is to this page: Get Time Elapsed.

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";
Get the difference between two Dates - Time and Date

Last accessed pages

  1. Inheritance - Parent class and Child class (1109)
  2. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (27235)
  3. Get the value of multiple selected checkboxes with same name (4347)
  4. Add, Change, and Remove Attributes with jQuery (21290)
  5. Common PHP Errors and Solutions (4654)

Top accessed pages

  1. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (43787)
  2. PHP-MySQL free course, online tutorials PHP MySQL code (33177)
  3. Read Excel file data in PHP - PhpExcelReader (33092)
  4. Get Attribute (ID, Class, Name, Title, Src) with jQuery (29923)
  5. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (27235)