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 renders as emphasized text, displaying the text oblique?
<strong> <pre> <em>
<p>Web development courses: <em>CoursesWeb.net</em></p>
Which CSS property defines the space between the element border and its content?
margin padding position
h3 {
  padding: 2px 0.2em;
}
Click on the method which returns the first element that matches a specified group of selectors.
getElementsByName() querySelector() querySelectorAll()
// gets first Div with class="cls", and shows its content
var elm = document.querySelector("div.cls");
alert(elm.innerHTML);
Indicate the PHP variable that contains data from a form sent with method="post".
$_SESSION $_GET $_POST
if(isset($_POST["field"])) {
  echo $_POST["field"];
}
Get the difference between two Dates - Time and Date

Last accessed pages

  1. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (54304)
  2. The Rise Of Atlantis (7932)
  3. Zuma Deluxe (32813)
  4. Butterfly Kyodai (24554)
  5. SHA512 Encrypt hash in JavaScript (6645)

Popular pages this month

  1. Bubbles3 (2864)
  2. Butterfly Kyodai (2474)
  3. Zuma Deluxe (1770)
  4. Qwop (1183)
  5. Backgammon (1081)