php 检查时间是否在范围内
php check if time is between range
我正在寻找一种方法来检查时间是否在特定时间范围内。
示例:
时间跨度:22:30至04:20
如果 13:23 介于两者之间,我如何轻松地检查 php?
只是时间的问题,当天应该没有影响。
首先定义两种情况:
同一天。如果 T1 <= Tx 且 Tx <= T2,则 Tx 在 T1 和 T2 之间。
不同的日子。如果 T1 <= Tx or Tx <= T2.
那么 Tx 在 T1 和 T2 之间
如何区分这两种情况:如果 T1 < T2,则为同一天。其他不同的日子。
极端情况:21:30 是否在 20:30 和 20:31 第二天 之间?当然可以。但是这两种情况,“一天的20:30到当天的20:31”和“一天的20:30和第二天的20:31”是无法区分,因此有可能 - 根据您的时间来源 - 无论您设计什么测试,它仍然会失败。
当然,如果您始终处于“同一天”场景,则永远不会出现此错误——但您将无法接受“22:30 至 04:20”示例在你的问题中。
function between($time, $time1, $time2) {
if ($time1 < $time2) {
// same day
// 09:30 <= 10:27 <= 12:15 : $time is between
return ($time1 <= $time) && ($time <= $time2);
}
// time1 is day1, time2 is next day
// 22:30 <= 23:30 or 02:15 <= 04:30: both 22:30 and 02:15
// are in the [ 22:30...04:30 ] range
// 06:27 is neither >= 23:30 nor <= 02:15, so is out of range
return ($time1 <= $time) || ($time <= $time2);
}
我正在寻找一种方法来检查时间是否在特定时间范围内。
示例: 时间跨度:22:30至04:20
如果 13:23 介于两者之间,我如何轻松地检查 php?
只是时间的问题,当天应该没有影响。
首先定义两种情况:
同一天。如果 T1 <= Tx 且 Tx <= T2,则 Tx 在 T1 和 T2 之间。
不同的日子。如果 T1 <= Tx or Tx <= T2.
那么 Tx 在 T1 和 T2 之间
如何区分这两种情况:如果 T1 < T2,则为同一天。其他不同的日子。
极端情况:21:30 是否在 20:30 和 20:31 第二天 之间?当然可以。但是这两种情况,“一天的20:30到当天的20:31”和“一天的20:30和第二天的20:31”是无法区分,因此有可能 - 根据您的时间来源 - 无论您设计什么测试,它仍然会失败。
当然,如果您始终处于“同一天”场景,则永远不会出现此错误——但您将无法接受“22:30 至 04:20”示例在你的问题中。
function between($time, $time1, $time2) {
if ($time1 < $time2) {
// same day
// 09:30 <= 10:27 <= 12:15 : $time is between
return ($time1 <= $time) && ($time <= $time2);
}
// time1 is day1, time2 is next day
// 22:30 <= 23:30 or 02:15 <= 04:30: both 22:30 and 02:15
// are in the [ 22:30...04:30 ] range
// 06:27 is neither >= 23:30 nor <= 02:15, so is out of range
return ($time1 <= $time) || ($time <= $time2);
}