【发布时间】:2015-03-12 08:16:36
【问题描述】:
我需要找出一定范围内两个不同的unix时间戳之间存在多少秒。
例如:
旅行开始时间:05:00 现场到达:07:00 待机时间:06:00 - 09:00
我需要找出用户正在旅行多少秒以及他在待机状态下花费了多少秒。
上面的结果应该输出:
Travel = 3600 seconds (05:00 - 06:00)
Standby = 3600 seconds (06:00 - 07:00)
另一个例子:
旅行开始时间:10:00 现场到达:11:30 待机时间:06:00 - 09:00
Travel = 5400 seconds (10:00 - 11:30)
Standby = 0 seconds
我认为不正确的示例代码:
if($travel_start_time >= $standby_start_time)
{
if($first_site_arrival <= $standby_end_time)
{
$travel_during_standby = max($first_site_arrival-$travel_start_time, 0);
}
elseif($first_site_arrival >= $standby_end_time)
{
$travel_during_standby = max($first_site_arrival-$standby_end_time, 0);
}
}
else
{
$travel_during_standby = max($first_site_arrival-$standby_start_time, 0);
}
【问题讨论】:
-
你尝试了什么?您甚至不需要 unix 时间戳,只需使用 strtotime 减去它们之间的时间。
-
我已经在用strtotime了,
-
这是我正在使用的代码,但我不确定逻辑是否合理。请假设这些值已经是 strtotime 格式。 pastebin.com/n6DF3Dw7
-
我刚刚更新了问题