如果单个值在另一个时间的 +/- 15 分钟范围内,如何检查时间数组
How to check a time array if the single values are in +/- 15 minute range of another time
我应该怎么做才能使 4 位数字 integer/string 表现(而不是看起来)像时间?
考虑这段代码:
$t = 0430;
$timeArray = array('0400', '0415', '0420', '0430', '0440', '0450', '0500', '0600');
现在,如果我必须搜索 $timeArray
距离 $t
+/- 15 分钟的元素,我会这样做:
foreach($timeArray AS $time){
if($time <= $t + 15 && $time >= $t - 15){
return $time;
}
}
应该没有问题。我会回来的:
0415, 0420, 0430, 0440
但是如果 $t = 0445
和 $t = 0505
我显然会分别错过 0500
和 0450
。
现在如何让 $t
and/or $timeArray
元素表现得像时间? 0500 在 0459 之后,而不是 0460?
编辑:
- 欢迎逻辑黑客。不必只在 PHP 中,除非你正在使用 PHP 预定义函数 :)
- 我正在从网络服务中获取 "integer time"。所以如果我能把它转换成 "Time/TimeStamp" 那也太棒了!
- 我的错。 4 位字符串。喜欢
'0400'
这应该适合你:
首先将所有字符串转换为时间戳,通过使用 array_map()
.
遍历所有值
在此之后,您可以简单地遍历您的值并检查它们是否在 15 分钟的范围内。
<?php
$t = "0430";
$timeArray = array('0400', '0415', '0420', '0430', '0440', '0450', '0500', '0600');
$timestampes = array_map("strtotime", $timeArray);
$t = strtotime($t);
foreach($timestampes as $time){
if($time <= $t + (15*60) && $time >= $t - (15*60)){
echo date("H:i:s", $time) . "<br>";
}
}
?>
输出:
04:15:00
04:20:00
04:30:00
04:40:00
我应该怎么做才能使 4 位数字 integer/string 表现(而不是看起来)像时间?
考虑这段代码:
$t = 0430;
$timeArray = array('0400', '0415', '0420', '0430', '0440', '0450', '0500', '0600');
现在,如果我必须搜索 $timeArray
距离 $t
+/- 15 分钟的元素,我会这样做:
foreach($timeArray AS $time){
if($time <= $t + 15 && $time >= $t - 15){
return $time;
}
}
应该没有问题。我会回来的:
0415, 0420, 0430, 0440
但是如果 $t = 0445
和 $t = 0505
我显然会分别错过 0500
和 0450
。
现在如何让 $t
and/or $timeArray
元素表现得像时间? 0500 在 0459 之后,而不是 0460?
编辑:
- 欢迎逻辑黑客。不必只在 PHP 中,除非你正在使用 PHP 预定义函数 :)
- 我正在从网络服务中获取 "integer time"。所以如果我能把它转换成 "Time/TimeStamp" 那也太棒了!
- 我的错。 4 位字符串。喜欢
'0400'
这应该适合你:
首先将所有字符串转换为时间戳,通过使用 array_map()
.
在此之后,您可以简单地遍历您的值并检查它们是否在 15 分钟的范围内。
<?php
$t = "0430";
$timeArray = array('0400', '0415', '0420', '0430', '0440', '0450', '0500', '0600');
$timestampes = array_map("strtotime", $timeArray);
$t = strtotime($t);
foreach($timestampes as $time){
if($time <= $t + (15*60) && $time >= $t - (15*60)){
echo date("H:i:s", $time) . "<br>";
}
}
?>
输出:
04:15:00
04:20:00
04:30:00
04:40:00