【发布时间】:2015-10-22 13:41:20
【问题描述】:
有点新手,我被困住了......所以任何帮助将不胜感激。
有点前言,我之前确实得到了一些帮助,这几乎达到了我所需要的,但到了我不想再占用他更多时间的地步(我问了他很多已经)。
例如,我的基准时间是“早上 7 点”,我想检索“早上 7 点之后”的 30 分钟结果,目前在帮助下,我可以在早上 7 点之前和之后获得所有结果。
代码如下:
$timeArrayOne = array(array("time"=>"2015-10-01 06:45:00"),array("time"=>"2015-10-01 07:15:00"),array("time"=>"2015-10-01 07:29:00"),array("time"=>"2015-10-01 07:31:00"));
$msg = '';
$closest = false;
$closestResult = false;
foreach ($timeArrayOne as $result) {
// foreach to get $basetime
$loggedTime = $result['time'];
// Set Base time
$baseTime = new DateTime("2015-10-01 07:00:00");
// Set Time Two
$TimeTwo = new DateTime($loggedTime);
// Subtract basetime from Time Two / divide by 60 for minutes
$minutes = abs(strtotime($baseTime->format('Y-m-d H:i:s')) - strtotime($TimeTwo->format('Y-m-d H:i:s'))) / 60;
if ($minutes <= 30) {
$rounded = round($minutes);
$msg .= "Success - $loggedTime <br/>";
}
}
echo $msg;
提前致谢。
【问题讨论】:
-
问题不清楚。请解释一下?
-
我希望在 30 分钟的时间跨度内得到所有结果,而不是早于“早上 7 点”。
-
$minutes >= 0 在哪里?
-
感谢 Paul,Amal 的回答非常出色,但感谢您的帮助。
标签: php arrays datetime foreach timestamp