2009-11-09 17 views

ответ

1
$date1 = '...'; // fetch this from your first table 
$date2 = '...'; // fetch this from your second table 
// if the dates are NOT unix timestamps use PHP's strtotime() or MySQL's UNIX_TIMESTAMP() to convert them 

$difference = abs($date1 - $date2); // difference in second 
// divide by 60 for minutes, 3600 for hours, etc etc 
0

в MySql:

select timediff(t2.DownTime,t1.DownTime1) 
from mt_upload t1, down_time t2 
where t1.id=<some_id> and t2.id=<some_id>; 

(вы, конечно, нужны некоторые идентификаторы, чтобы выбрать правильные записи)

Это возвращает вам строку в виде ЧАСОВ: Минуты: Секунды

Если вы хотите несколько секунд, вы можете сделать это:

select hour(timediff(t2.DownTime,t1.DownTime1))*3600 
+minute(timediff(t2.DownTime,t1.DownTime1))*60 
+second(timediff(t2.DownTime,t1.DownTime1)) 
from mt_upload t1, down_time t2 
where t1.id=<some_id> and t2.id=<some_id>; 
2

При использовании PHP 5.3:

Для получения разницы в полезной форме, поэтому он может быть показан пользователю заполнить данных в объекты DateTime, как в $date1 = new DateTime('2009-11-09 12:13:14');, а затем используйте Datetime::diff(), чтобы получить объект DateInterval.

Выполнение этого лучше, чем ручное вычисление различий, поскольку ручное управление переключением на летнее время, секундомеры и аналогичные даты могут быть очень трудными.

+0

+1 Если PHP 5.3 доступен, я бы использовал эти руки по методу, который я предложил. –

Смежные вопросы