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,并与当前的日期时间比较创建伪日期。伪日期是通过如下所示的条件创建的,这些条件被评论以描述我的逻辑。
我宁愿更喜欢基于MySQL查询的解决方案,而不是获取所有规则和比较,但我找不到方法。如果你检查我的代码并告诉我你的想法,我会很乐意。缺陷是可能的......
$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