php - 在 PHP 中针对数组测试变量

标签 php arrays date

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

现在是星期二 19:00,这应该是“After Hours”,但它却回显“During Hours”,我是不是漏掉了什么?

示例代码:

<?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';
} ?>

正在返回:

PM
Tuesday
19
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)) {

||等同于“或”,所以条件返回真,说这是休息日,但在您的正常工作时间

使用&&等同于“and”,要求两个条件语句都为真才能执行代码块

关于php - 在 PHP 中针对数组测试变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30744836/

相关文章:

php - 通过 PHP 从 Facebook JSON 到 HTML 的字符编码问题

javascript - Odd Ones Out - 创建一个在原始数组中出现偶数次的项目数组

javascript - 过滤 js 中长度小于 < 50 个字符的内容

Java 十进制转日期值

javascript - 查找日期列表中最早的日期

php - 从阿拉伯文本中删除重音字符

php - 使我的表格可按四列排序

arrays - Swift:配对数组元素的最佳方法是什么

python - 如何检查日期是否在特定范围内?

php - https://链接本身转到:443