2009-11-01 4 views
1

임 버스 스케줄 앱을 작성 중입니다.스케줄링 앱의 시간 산술을 가장 잘 처리하는 방법은 무엇입니까?

mysql db에는 정적 인 '시간'필드가 있습니다. 버스에 대한 예정 시간 인 15:23을 말하고 하루는 바뀌지 않습니다. 버스는 항상 15:23에옵니다. . 오후 3시 20 분이고 사용자가 버스 정류장을 향해 달리고 있습니다. "다음 버스가 3 분 안에 있습니다"라고 사용자에게 어떻게 표시합니까?

미리 감사드립니다. MySQL의에서 크리스

+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

당신은 TIMEDIFF 기능과이 작업을 수행 할 수있는 CURTIME 기능을 사용할 수 있습니다

또한 PHP에서 그것을 할 수
TIMEDIFF(bus_time, CURTIME()) 
2

:

// 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"; 

것은 당신이 시간을 얻는 경우 time() 대신 MySQL에서, MySQL의 UNIX_TIMESTAMP() 함수를 사용하십시오.

관련 문제