2016-03-08 64 views
0

我发现许多输出bool的解决方案,如果某天是特定日期之前或之后,但我似乎无法找到特定时间在PHP中。检查一天中的当前时间是否在特定时间之前或之后

我有一个脚本,我希望可以在7:45 AM和3:45 PM之间使用,并且只能在星期一到星期五之间使用 - 但不会在这些时间之前或之后或周末使用。

我一直在讨论如何做到这一点,我在这里张贴,因为我确信有一个非常简单的方法来做到这一点,我忽略了。

这是我到目前为止有:

$timeOfDay = date("h:iA"); 
$dayOfDay = date("D"); 

if(strcmp($dayOfDay,'Mon') != 0 
||strcmp($dayOfDay,'Tue') != 0 
||strcmp($dayOfDay,'Wed') != 0 
||strcmp($dayOfDay,'Thu') != 0 
||strcmp($dayOfDay,'Fri') != 0) { 
    //disable site 
} else { 
    //if $timeOfDay is before 7:30AM or after 3:45PM, disable site ELSE enable site 
} 

需要明确的是,该脚本应该只是在线周一至周五上午7:45和下午3:45之间。

编辑: 另外要注意的 - 我只是寻求PHP逻辑,我可以得到一个真或假,我可以处理的代码的其余部分禁用脚本等

+1

获取和比较时间戳 –

+0

@u_mulder什么时间戳?没有要比较的记录。这就是我想要弄明白的,我可以比较两个变量的时间,并根据我的需求创建一个真实或错误的时间。 – GrumpyCrouton

回答

1
$now = strtotime("now"); // here come current timestamp 
$dt_start = strtotime(date("d.m.Y 07:45")); // timestamp of today 07:45 
$dt_end = strtotime(date("d.m.Y 15:45")); // timestamp of today 15:45 
$cur_day = date("w", $now); // number of cur day 0 to 6 

if ((0 < $cur_day && $cur_day < 6)    // check what day is it 
    && ($dt_start < $now && $now < $dt_end)) { // check time interval 
    // do stuff 
} 
+0

因此,如果陈述是“做东西”,如果时间在这两次之间?或者相反? – GrumpyCrouton

+0

两次之间。 –

相关问题