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 - https://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 is used to add lists into <ul> and <ol> elements?
<dt> <dd> <li>
<ul>
 <li>http://coursesweb.net/html/</li>
 <li>http://coursesweb.net/css/</li>
</ul>
Which value of the "display" property creates a block box for the content and ads a bullet marker?
block list-item inline-block
.some_class {
  display: list-item;
}
Which instruction converts a JavaScript object into a JSON string.
JSON.parse() JSON.stringify eval()
var obj = {
 "courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr);    // {"courses":["php","javascript","ajax"]}
Indicate the PHP class used to work with HTML and XML content in PHP.
stdClass PDO DOMDocument
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue;    // CoursesWeb.net
Get the difference between two Dates - Time and Date

Last accessed pages

  1. Adding data from HTML Table Rows in Form fields (5945)
  2. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (78378)
  3. Contact page - CoursesWeb (16566)
  4. Tabs effect with CSS (17264)
  5. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (23413)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (1848)
  2. Tabs effect with CSS (1773)
  3. Contact page - CoursesWeb (1768)
  4. Insert, Select and Update NULL value in MySQL (1041)
  5. PHP getElementById and getElementsByTagName (824)