Im trying to solve this since two days without success... First of all my code:
PHP-Version: 5.4
SCRIPT1:
query = "SELECT start, end FROM timetable WHERE ........";
$result = mysql_query($query, $db) or die(mysql_error());
$sqlarr = mysql_fetch_array($result, MYSQL_ASSOC);
$times = array($sqlarr['start'], $sqlarr['end']);
$calced = strtotime($times[1]) - strtotime($times[0]);
$total = date("H:i:s", $calced-3600); //<-- -3600 Fixed it
echo "<br>Total: ".$total;
The start and end times are in format 00:00:00. Everytime this script calculates it appends 1 hour to the result. So if im going for a result of 5 minutes i´ll get 01:00:05. Why???
This one is even more strange. SCRIPT2:
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo " | ".$row['total']."<br>";
$add += strtotime($row['total']);}
echo $add;
The first script calculates the total time from start to end. The second one should get the total-times out of the db and calculate the sum of all entries. For every entry the second script substracts 2 hours.
Example: Database => Start = 12:32:00 End = 12:32:15
Script1 Result1 = 01:00:15 (Where is this extra hour coming from?) FIXED
Every Result1 is stored in the same table(db). Script2 is loading all this rows and handling them by a while-loop.
According to how many entries there are the script subtracts serval hours.
0 Entries => Total: 00:00:00
1 Entry => Total: 23:00:xx
2 Entries => Total: 20:00:xx
3 Entries => Total: 18:00:xx
4 Entries => Total: 16:00:xx
So, with 2 entries it continues subtracting 2 hours from every total-calculation which isnt correct, abviously.
Thanks to you guys. Using DateTime made this simple and bugfree!