2013-03-24 3 views
0

У меня есть табличное время в базе данных mysql с одним атрибутом типа «ВРЕМЯ», который содержит значение по умолчанию «09:00:00». то, что я пытаюсь сделать, это получить это значение и вычесть его из текущего времени.Вычитание предопределенного времени в PHP

include 'connection.php'; 
$time = mysql_query("SELECT start_time FROM time"); 
$s = mysql_fetch_assoc($time); 
$start_time = strtotime($s['start_time']); 
$time_now = date("H:i:s"); 
$delay = ($time_now - $start_time); 

Однако он никогда не работал так, как мне нужно. Результат всегда как 00:00:00 то, что я хочу достичь, это что-то вроде:

$start_time = 09:00:00 
$time_now = 09:34:23 
so $delay should be 00:34:23. 

любой помощи для достижения этой цели? Спасибо заранее.

+0

Предлагаю вам сделать это в MySQL, используя арифметические функции даты. https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html –

+0

https://dev.mysql.com/doc/refman/5.5/en/date-and- time-functions.html # function_timediff –

+0

Преобразование даты не является математикой, это алгоритм. Вы не можете просто вычитать даты, вам нужно использовать библиотеку, которая знает, что вы пытаетесь сделать. PHP 'DateTime :: Sub' - http://www.php.net/manual/en/datetime.sub.php –

ответ

1

Просто небольшая ошибка в коде .... смотрите ниже

include 'connection.php'; 
$time = mysql_query("SELECT start_time FROM time"); 
$s = mysql_fetch_assoc($time); 

$start_time = strtotime($s['start_time']); 
$time_now = date("H:i:s"); 
$delay = ($time_now - $start_time); //BUG! String minus timestamp here... 

Фикс, что второй блок с:

$start_time = strtotime($s['start_time']); 
$delay = date("H:i:s", time() - $start_time); 

согласен с другими, хотя, это действительно чисто сделано на базе сторона также.

Надеюсь, что это поможет

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