我正在建立一个公交计划应用程序。
在mysql数据库中,我有一个静态的“时间”字段 - 让我们说15:23这是公交车的预定时间,从不改变从一天到下一天 - 公交车总是在15:23到达。现在是下午3:20,用户正在为公共汽车站运行。如何向用户显示“下一班车在3分钟内”
提前致谢!克里斯
答案 0 :(得分: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()获得时间,请使用MySQL的UNIX_TIMESTAMP()函数。
答案 1 :(得分:0)
在MySQL中,您可以使用TIMEDIFF函数和CURTIME函数来执行此操作:
TIMEDIFF(bus_time, CURTIME())
答案 2 :(得分: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";