为了账号安全,请及时绑定邮箱和手机立即绑定

检查数字是否在两个带有增量的数字之间

检查数字是否在两个带有增量的数字之间

PHP
白衣染霜花 2022-06-11 16:52:27
我有一个时间字符串,还有一个带增量的时间范围。$start = strtotime('10:00:00');$end = strtotime('23:30:00');$increment = 30;$given = strtotime('10:20:00');if(if number lands on an incremented number) {    echo 'success'} else {    echo 'fail';}在示例中,我想查看是否$given落在$start和之间的递增时间之一$end。增加时间意味着将$increment加到$start直到我们到达$end。所以在上面的示例代码中,以下数字是唯一应该通过检查的数字:10:00:0010:30:0011:00:0011:30:0012:00:0012:30:0013:00:0013:30:0014:00:0014:30:0015:00:0015:30:00...23:30:00在这种情况下,$given= 10:20:00 所以它没有通过检查。我不想使用 for 循环。我想看看是否有任何数学,比如检查余数%或类似的东西。
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

是的,您可以使用%它。

首先,您需要将增量转换为秒。

$increment *= 60;

然后你可以通过检查找到答案

  1. 给定时间小于结束时间,并且

  2. 给定时间和开始时间的差值可以除以增量(即差%增量== 0)

if ($given <= $end && 0 == ($given - $start) % $increment) {

    echo 'success';

} else {

    echo 'fail';

}


查看完整回答
反对 回复 2022-06-11
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

另一种方法是创建一个增量范围,从开始到结束,看看是否在该数组中找到给定的:


if(in_array($given, range($start, $end, $increment * 60))) {

    echo 'success';

} else {

    echo 'fail';

}


查看完整回答
反对 回复 2022-06-11
  • 2 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信