php - 需要创建一个算法/函数来检查宵禁是否有效,可以跨越不同的日子
问题描述
我有一个心理障碍,所以我想看看是否有人能看到我正在寻找的解决方案。我需要想出一个算法(最好在 PHP 中)来确定宵禁在当前时间是否有效。宵禁被定义为具有开始时间和结束时间。
例如:
开始:23:30 结束:04:00
因此,对于一天的 23:30 和下一天的 04:00 之间的任何给定时间,宵禁都是有效的。(并且在任何其他时间,不活动)。
开始:07:00 结束:09:00。
在同一天的 07:00 到 09:00 之间的任何给定时间,宵禁都是有效的,等等。
我遇到特别困难的地方是为这些 24 小时时间构建和比较不同场景的时间戳,因为时间戳的日期部分取决于开始和结束时间是在不同的日子还是同一天。
该解决方案需要足够灵活,以准确识别宵禁期当前是否针对任何可能的开始/结束值处于活动状态,并在一天中的任何时间进行检查。
/**
* @param $start_time string curfew start time, e.g. "23:30"
* @param $end_time string curfew end time, e.g. "04:00"
* @return boolean Whether at the current time, the specified curfew is active.
*/
function isCurfewActive($start_time, $end_time) {
... code goes here ...
}
谢谢!