Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中针对数组的测试变量_Php_Arrays_Date - Fatal编程技术网

PHP中针对数组的测试变量

PHP中针对数组的测试变量,php,arrays,date,Php,Arrays,Date,我想我应该使用,但由于某些原因,它给了我不准确的信息。我查看了和,但看起来只有当我的数组中有一个键和值时才有用,而我没有。简而言之,我运行一个条件来获取当前的EST时间和日期,并确定它是“在小时内”还是“在小时后” 所以现在是周二19:00,应该是“下班后”,但它是“在上班时间”的回声,我错过了什么吗 示例代码: <?php date_default_timezone_set('US/Eastern'); $current_time = date('A'); //AM or PM $cu

我想我应该使用,但由于某些原因,它给了我不准确的信息。我查看了和,但看起来只有当我的数组中有一个键和值时才有用,而我没有。简而言之,我运行一个条件来获取当前的EST时间和日期,并确定它是“在小时内”还是“在小时后”

所以现在是周二19:00,应该是“下班后”,但它是“在上班时间”的回声,我错过了什么吗

示例代码:

<?php

date_default_timezone_set('US/Eastern');
$current_time = date('A'); //AM or PM
$current_day = date('l'); // Sunday - Saturday
$current_hour = date('H'); // 08 / 24hr Time Format

$closed_days = array('Saturday','Sunday');

$closed_hours = array('17','18','19','20','21','22','23','00','01','02','03','04','05','06','07','08');
?>
<?php
echo $current_time . '<br />';
echo $current_day . '<br />';
echo $current_hour . '<br />';
//Operating Hours
if(!in_array($current_day, $closed_days) || !in_array($current_hour, $closed_hours)) {
    echo 'During Hours';
} else { 
    echo 'After Hours';
} ?>
改变

更改:

if(!in_array($current_day, $closed_days) || !in_array($current_hour, $closed_hours)) {

| |等同于“或”,因此情况恢复为真,比如说这是休息日,但在您的正常工作时间


使用&&Equalizes to“and”,这要求两个条件语句都为true,以执行代码块

我敢肯定,它非常简单,只需将if语句从:

!in_array($current_day, $closed_days) || !in_array($current_hour, $closed_hours)
致:


通过使用OR,您的意思是只有一个条件必须为真

是有意义的,那么如果是我们营业的一天,但营业时间超过几个小时,这一点是否成立?我非常想运行一些代码,如果它是周一-周五上午9点到下午5点之间,然后做其他事情。我试着用“或”、“和”的逻辑来思考问题。即使我确信我错了,我的大脑还是在告诉我。例如,如果当前日期不等于Sat或Sun,则“或”当前小时不在封闭小时数组中。是的,因为必须满足这两个条件。更新条件的逻辑为“如果当前_天不在closed_days数组中且当前_小时不在closed_hours数组中,则在小时后显示”
if(in_array($current_day, $closed_days) || in_array($current_hour, $closed_hours)){
  echo 'After Hours';
}
else{
   echo 'During Hours';
}
if(!in_array($current_day, $closed_days) || !in_array($current_hour, $closed_hours)) {
if(!in_array($current_day, $closed_days) && !in_array($current_hour, $closed_hours)) {
!in_array($current_day, $closed_days) || !in_array($current_hour, $closed_hours)
!in_array($current_day, $closed_days) && !in_array($current_hour, $closed_hours)