Php 如何最好地处理调度应用程序的时间算法?

Php 如何最好地处理调度应用程序的时间算法?,php,time,comparison,Php,Time,Comparison,我正在构建一个公交时刻表应用程序 在mysql数据库中,我有一个静态的“时间”字段——比方说15:23,这是公交车的预定时间,从一天到下一天从不改变——公交车总是在15:23到达。现在是下午3:20,用户正在向公共汽车站跑去。我如何向用户展示“下一辆公交车还有3分钟” 提前谢谢!Chris在MySQL中,您可以使用TIMEDIFF函数和CURTIME函数来执行以下操作: TIMEDIFF(bus_time, CURTIME()) 您也可以在PHP中执行此操作: // set this to t

我正在构建一个公交时刻表应用程序

在mysql数据库中,我有一个静态的“时间”字段——比方说15:23,这是公交车的预定时间,从一天到下一天从不改变——公交车总是在15:23到达。现在是下午3:20,用户正在向公共汽车站跑去。我如何向用户展示“下一辆公交车还有3分钟”


提前谢谢!Chris

在MySQL中,您可以使用TIMEDIFF函数和CURTIME函数来执行以下操作:

TIMEDIFF(bus_time, CURTIME())

您也可以在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()函数。

当您的计算超过午夜时要小心,例如,如果是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";
$now=time();
$sched=“00:43”;
$sched_time=strottime($sched);
如果($sched_time<$now)
$sched_time=strottime(“明天$sched”);
$diff=$sched_time-$now;
回显“$diff秒到”;

时间字段的类型是什么?你想知道整个查询,或者只是如何比较时间?哦,是的,我在php工作-Sorry我可以做查询,只是可以比较查询结果和现在的时间。类型是“时间”。