【发布时间】:2014-10-15 00:15:16
【问题描述】:
我需要确定当前时间是否介于另外两个时间之间。例如,要检查时间是否在 07:00 到 10:00 之间,我可以使用:
$currentTime = new DateTime('09:00');
$startTime = new DateTime('07:00');
$endTime = new DateTime('10:00');
if ($currentTime->format('H:i') >= $startTime->format('H:i') && $currentTime->format('H:i') <= $endTime->format('H:i')) {
// Do something
}
我遇到的问题是如果时间是 01:00 会发生什么,我想检查它是否在 22:00 和 07:00 之间。我并不担心这是另一天,只要它在 24 小时制的这两个小时之间。示例 01:00 介于 22:00 和 07:00 之间
22:00, 23:00, 00:00, 01:00, 02:00... 07:00
我最终想要实现的是,可以在不同时间为服务设置不同的价格。因此,我目前每小时循环计算该小时属于哪个价格范围并相应地改变价格。如果有人对此问题有更优雅的解决方案,我将不胜感激。
更新:
假设我有一条规则,规定在晚上 10 点到早上 7 点之间我要收取双倍费用。我从开始时间到结束时间每个小时循环,检查每个小时是否在 22:00(晚上 10 点)和 07:00(早上 7 点)之间,如果是,则应加倍收费。我想避免考虑日期。
【问题讨论】:
-
但是,
10:00介于20:00和22:00之间,因为10:00和22:00被安排在第二天......从这个意义上说,任何时间都在两个给定时间之间.您的问题含糊不清,请更具体... -
@CommuSoft 为清楚起见添加了更多信息,希望对您有所帮助。