PHP - 如何检查当前日期/时间是否在两个工作日之间,包括时间(从 - 到)

我需要检查当前日期和时间是否在两个工作日之间,包括时间(从和到)。数据库中可以有多个记录,通过PHP日期('N')存储数据库中的多个记录,其中1(星期一)至7(对于星期天)以及小时 - 分钟通过时间存储。PHP - 如何检查当前日期/时间是否在两个工作日之间,包括时间(从 - 到)

例如,存储的规则可以是以下: week_day_from:5(星期五) week_hour_from:十六时00分00秒 week_day_to:7(星期日) week_hour_to:18:00:00

或甚至 week_day_from:7(星期日) week_hour_from:10:00:00 week_day_to:2(星期二) week_hour_to:12:00:00

我如何确定当前日期/时间在适用的规则之一?其主要思想是隐藏了一定的效果,如果该规则的一个应用(即周五16:00以后周日18:00之前不显示这顿饭)

预先感谢您

回答:

功能GETDATE会给你更确切的信息。函数getDate()将返回一个包含周日和时间信息的数组。通过间隔,你可以确定是否适用。

回答:

找到了....

不得不为了使用的strtotime,并与当前的日期时间比较创建伪日期。伪日期是通过如下所示的条件创建的,这些条件被评论以描述我的逻辑。

我宁愿更喜欢基于My​​SQL查询的解决方案,而不是获取所有规则和比较,但我找不到方法。如果你检查我的代码并告诉我你的想法,我会很乐意。缺陷是可能的......

$daynow = date("N"); //$daynow = 7; 

$datetimenow = date("d-m-Y G:i:s");

if($row['week_day_from'] > $row['week_day_to'])

{// case from saturday(6) to thursday(4)

if($daynow == 7)

{

$check_from = date("d-m-Y", strtotime("Sunday + ".$row['week_day_from']." Days - 1 week"));

$check_to = date("d-m-Y", strtotime("Sunday + ".$row['week_day_to']." Days"));

}

else

{

$check_from = date("d-m-Y", strtotime("Sunday + ".$row['week_day_from']." Days - 2 week"));

$check_to = date("d-m-Y", strtotime("Sunday + ".$row['week_day_to']." Days - 1 week"));

}

}

else

{// case from thursday(4) to saturday(6)

if($daynow == 7)

{

$check_from = date("d-m-Y", strtotime("Sunday + ".$row['week_day_from']." Days"));

$check_to = date("d-m-Y", strtotime("Sunday + ".$row['week_day_to']." Days"));

}

else

{

$check_from = date("d-m-Y", strtotime("Sunday + ".$row['week_day_from']." Days - 1 week"));

$check_to = date("d-m-Y", strtotime("Sunday + ".$row['week_day_to']." Days - 1 week"));

}

}

if

(

strtotime($datetimenow) >= strtotime($check_from." ".$row['week_hour_from'])

AND

strtotime($datetimenow) <= strtotime($check_to." ".$row['week_hour_to'])

)

{

//RULE APPLIES

}

以上是 PHP - 如何检查当前日期/时间是否在两个工作日之间,包括时间(从 - 到) 的全部内容, 来源链接: utcz.com/qa/261154.html

回到顶部