2009-11-01 11 views
1

Im строительство автобус график приложения.Как лучше всего обрабатывать временную арифметику для приложения для планирования?

В mysql db У меня есть поле времени, которое является статическим - допустим, 15:23, которое является запланированным временем для шины и никогда не меняется с одного дня на другой - автобус всегда приходит в 15:23 , Это 3:20 вечера, и пользователь работает для остановки автобуса. Как представить пользователю «Следующая шина за 3 минуты»

Заранее спасибо! Крис

+0

Какой тип поля «время»? Вам интересно узнать весь запрос или просто сравнить время? – outis

+0

О да, я работаю в php - извините – chrismeadrn

+0

Я могу сделать запрос, просто может показаться, что он сравнивает время с результатом запроса и теперь. И тип «время». – chrismeadrn

ответ

0

Будьте осторожны, когда ваши расчеты пройдут в полночь, например, если это 23:20, а автобус приходит в 0:05, простое вычитание не будет работать. Всегда убедитесь, что запланированное время позже текущего времени, например.

$now = time(); 
$sched = "00:43"; 

$sched_time = strtotime($sched); 
if($sched_time < $now) 
    $sched_time = strtotime("tomorrow $sched"); 

$diff = $sched_time - $now; 
echo "$diff seconds to go"; 
0

В MySQL вы можете использовать функцию TimeDiff и функцию CURTIME, чтобы сделать это:

TIMEDIFF(bus_time, CURTIME()) 
2

Вы также можете сделать это в PHP:

// set this to the appropriate time zone if mktime gives a warning 
date_default_timezone_set("America/Los_Angeles"); 

$bus = mktime(11, 0); // hour : minute; other fields default to now 
$now = time(); 
echo (($bus - $now)/60) . " minutes to go\n"; 

Если вы получаете время из MySQL вместо time() используйте функцию UNIX_TIMESTAMP() MySQL.

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

  • Нет связанных вопросов^_^