我应该怎样做才能使 4 位整数/字符串表现得(而不是看起来)像时间?
考虑这段代码:
$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
和/或$timeArray
元素表现得像时间? 0500 是在 0459 之后,而不是 0460 吗?
编辑:
- 欢迎逻辑黑客。不必只在 PHP 中,除非您使用 PHP 预定义函数:)
- 我从网络服务中获取“整数时间”。因此,如果我可以将其转换为“时间/时间戳”,那就太好了!
- 我的错。 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
关于php - 如何检查时间数组的单个值是否在另一个时间的 +/- 15 分钟范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433291/