Hello forums
How do I substract the current time from a string and return me the number of hours.
$t = '2010-05-06 15:33:45';
$s = strtotime($t);
$h = floor(time() - $s / 60 );
echo $h;
^ didn’t work
Hello forums
How do I substract the current time from a string and return me the number of hours.
$t = '2010-05-06 15:33:45';
$s = strtotime($t);
$h = floor(time() - $s / 60 );
echo $h;
^ didn’t work
time() returns a unix timestamp, which is represents seconds.
–How many seconds are in an hour?
Like when you do math on paper, certain arithmetic operators have higher precedence, and must be evaluated first unless parenthesis are used to force the order of operations.
6 - 4 / 2 = ?
–What’s the correct result? 4 or 1?
Ok I see however how do I evaluate arithmetic operators inside a mysql query. Here’s my scenario:
I want to get the hour difference of s_in and s_out from the table and insert it to the column hours_today
here’s my query to get the seconds difference of the two columns
$q = mysql_query("SELECT UNIX_TIMESTAMP(s_out) - UNIX_TIMESTAMP(s_in) AS dif FROM sd_record WHERE id = 1");
and to convert it to hours I need to : floor(dif / (60 * 60)) it. How then can I do that?
Tnx
I might need a new thread for this over at mysql forums
SELECT FLOOR(
(UNIX_TIMESTAMP(s_out) - UNIX_TIMESTAMP(s_in)) / 3600
) AS hrs
FROM ...
But, most databases have a lot of date and time manipulation capabilities. Another one of many ways
SELECT HOUR(TIMEDIFF(s_out, s_in)) AS hrs
FROM ...
If you wanna update the whole table
UPDATE sometable
SET hours_today = HOUR(TIMEDIFF(s_out, s_in))
The column seems a bit redundant though, because it stores information that already exists(just needs to be calculated).
I need to get the total number of hours by adding all the rows in the hours_today latter
Anyway I, trying to make your second query work but it’s throwing me syntax errors:
$q = mysql_query(“SELECT HOUR(TIMEDIF(s_out, s_in)) AS hrs FROM sd_record WHERE id = 1”);
oops sori I just need to remove the extra space TIMEDIFF(s_out,s_in)
I see that this one is much better. it will enter the hour including the mins and seconds
UPDATE sometable
SET hours_today = HOUR(TIMEDIFF(s_out, s_in))
Question: How then can I get the total number of hours in all the rows in the hours_today column?
TNX
OK here’s to get the total
$q = mysql_query("SELECT SUM(hours_today) AS tot FROM sd_record");
Thanx crmalibu you are a great help
SELECT SUM(hours_today) AS total
or
SELECT SUM(HOUR(TIMEDIFF(s_out, s_in))) AS total