When you store the data, it would be smart to only store the timestamp -time()-
Then you would be able to use either strtotimestrtotime or mktime
But if you can't change the change what type of data that is stored, then the use of explode() function would be userfull.
Eg.
time one is: 2003-01-23 08:01:01
and
the second time is: 2003-01-23 08:01:05
store the first time in $t1 and the second in $t2
There is a blank space between the date and the time ..-dd hh:.. so you can use the " " as separation in the explode function.
$DateAndTime1 = explode(" ", $t1);
$DateExplode = explode("-", $DateAndTime1[0]);
$TimeExplode = explode(":", $DateAndTime1[1]);
Now it has all been divided into arrays
the year is in the array $DateExplode[0]
month is in $DateExplode[1]
day is in $DateExplode[2]
hour is in $TimeExplode[0]
min is in $TimeExplode[1]
and secound is in $TimeExplode[2]
Do the same to extract the variables from $t2
$DateAndTime2 = explode(" ", $t2);
$DateExplode2 = explode("-", $DateAndTime2[0]);
$TimeExplode2 = explode(":", $DateAndTime2[1]);
To print the diference:
echo "Difference<br>";
echo "Years: ".($DateExplode2[0]-$DateExplode[0])."<br>";
echo "Months: ".($DateExplode2[1]-$DateExplode[1])."<br>";
echo "Days: ".($DateExplode2[2]-$DateExplode[2])."<br>";
echo "Hours: ".($TimeExplode2[0]-$TimeExplode[0])."<br>";
echo "Minutes: ".($TimeExplode2[1]-$TimeExplode[1])."<br>";
echo "Secounds: ".($TimeExplode2[2]-$TimeExplode[2])."<br>";
To sum it up... here's the script:
<?php
$t1 = "2003-01-23 08:01:01";
$t2 = "2003-01-23 08:01:05";
$DateAndTime1 = explode(" ", $t1);
$DateExplode = explode("-", $DateAndTime1[0]);
$TimeExplode = explode(":", $DateAndTime1[1]);
$DateAndTime2 = explode(" ", $t2);
$DateExplode2 = explode("-", $DateAndTime2[0]);
$TimeExplode2 = explode(":", $DateAndTime2[1]);
echo "Difference<br>";
echo "Years: ".($DateExplode2[0]-$DateExplode[0])."<br>";
echo "Months: ".($DateExplode2[1]-$DateExplode[1])."<br>";
echo "Days: ".($DateExplode2[2]-$DateExplode[2])."<br>";
echo "Hours: ".($TimeExplode2[0]-$TimeExplode[0])."<br>";
echo "Minutes: ".($TimeExplode2[1]-$TimeExplode[1])."<br>";
echo "Secounds: ".($TimeExplode2[2]-$TimeExplode[2])."<br>";
?>
The output here would be:
Difference
Years: 0
Months: 0
Days: 0
Hours: 0
Minutes: 0
Secounds: 4
Hope this helps!
🙂