Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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 echo开放或关闭的营业时间取决于日期或日期_Php_Arrays - Fatal编程技术网

php echo开放或关闭的营业时间取决于日期或日期

php echo开放或关闭的营业时间取决于日期或日期,php,arrays,Php,Arrays,我已经回顾了这里的问答,还没有找到我想要做什么的答案。我想在数组中放入一个$variable,有点像echo 以下是一个例子: $days = '"12/25","12/26"'; return array($days); 当PHP页面加载时,我希望上面的内容是这样的,以便变量在数组中加载/回显 $days = '"12/25","12/26"'; return array("12/25","12/26") 这是我的全部代码,它呼应营业时间的开放或关闭。正如您所看到的,我希望能够从代码的

我已经回顾了这里的问答,还没有找到我想要做什么的答案。我想在数组中放入一个$variable,有点像echo

以下是一个例子:

$days = '"12/25","12/26"';

return array($days);
当PHP页面加载时,我希望上面的内容是这样的,以便变量在数组中加载/回显

$days = '"12/25","12/26"';

return array("12/25","12/26")
这是我的全部代码,它呼应营业时间的开放或关闭。正如您所看到的,我希望能够从代码的顶部更改假期日期,以防止在代码中转到页面的底部进行更改。我试过,($假日)(假日)(“$假日”)


为了帮助澄清,这是实际的工作代码。根据一周中的哪一天、时间和节假日,它显示“我们营业”、“我们营业”、“节假日休息”。“假期关闭”仅在假日中列出的某一天显示。它工作得很好,但是我试图改变它,这样如果我想在假期计划中增加更多的天数,我就可以在页面代码的顶部轻松完成,而不是向下滚动。我知道懒惰,但那是为了生产

<?php


date_default_timezone_set('America/New_York');

// Runs the function
echo time_str();

function time_str() {

    if(IsHoliday())
    {
        return ClosedHoliday();
    }           

$dow = date('D'); // Your "now" parameter is implied

    // Time in HHMM
    $hm = (int)date("Gi");

    switch(strtolower($dow)){
            case 'mon': //MONDAY adjust hours - can adjust for lunch if needed
                if ($hm >= 830 && $hm < 1700) return Open();
                else return Closed();
                break;   
            case 'tue': //TUESDAY adjust hours
                if ($hm >= 830 && $hm < 1700) return Open();
                else return Closed();
                break;              
            case 'wed': //WEDNESDAY adjust hours
                if ($hm >= 830 && $hm < 1700) return Open();
                else return Closed();
                break;              
            case 'thu': //THURSDAY adjust hours
                if ($hm >= 830 && $hm < 1700) return Open();
                else return Closed();
                break;              
            case 'fri': //FRIDAY adjust hours
                if ($hm >= 830 && $hm < 1700) return Open();
                else return Closed();
                break;              
            case 'sat': //Saturday adjust hours
                return Closed();
                break;              
            case 'sun': //Saturday adjust hours
                return Closed();
                break;              

    }           
}

// List of holidays
function HolidayList()
{
// Format: 05/11 (if year/month/day comma seperated for days)
return array("12/25","12/26");
}

// Function to check if today is a holiday
function IsHoliday()
{
// Retrieves the list of holidays
$holidayList = HolidayList();
// Checks if the date is in the holidaylist  - remove Y/ if Holidays are same day each year  
if(in_array(date("m/d"),$holidayList))
{ 
    return true;
}else
{
    return false;
}   
}

// Returns the data when open
function Open()
{
    return 'We are Open';
}

// Return the data when closed
function Closed()
{
    return 'We are Closed';
}

 // Returns the data when closed due to holiday
 function ClosedHoliday()
{
       return 'Closed for Holidays';
    }

    // Returns if closed for lunch
    // if not using hours like Monday - remove all this
   // and make 'mon' case hours look like 'tue' case hours
   function Lunch()
   {
       return 'Closed for Lunch';
   }

  ?>

我假设您想要将字符串转换为数组

您可以首先使用逗号作为分隔符分解它们,然后从值中删除双引号并放入days数组变量

<?php

$string = '"12/25","12/26"';
$tmps = explode(',', $string);
foreach($tmps as $tmp)
{
  $days[] = str_replace("\"","", $tmp);
}
print_r($days);

$holidays
是一个“便利”变量,您将其视为常量。在第一次赋值之后,它在代码中永远不会更改

在以前的实现中,
$holidays
作为字符串很有用。根据您新的多日假期要求,将其初始化为“m/d”字符串数组将更加有用



进行上述更改后,您的
HolidayList()
函数将变得多余,因此请将其删除。另外,
$holidaysList
变得多余,因此将它的每个实例替换为
$holidays
(只有一个实例)。

谢谢,但我不想打印/回显实际的天数。如果时间在0830到1700之间,并且不是这两天中的某一天,如12/25,则上面的代码打印/回显“我们营业”。如果是12月25日,代码会回显/打印“假期结束”。代码中存在许多不必要的复杂性,这使得问题比需要的更难回答。具体来说:一,。返回字符串的函数最好作为常量实现;2.交换机/机箱中的复制已成熟,可以转换为功能。在我看来,这实际上是剧本中唯一值得发挥作用的部分。3.不需要定义和调用
time\u str()
。只需立即回显/打印相应的结束消息。谢谢,这确实很有意义。
<?php

$string = '"12/25","12/26"';
$tmps = explode(',', $string);
foreach($tmps as $tmp)
{
  $days[] = str_replace("\"","", $tmp);
}
print_r($days);
<?php
$holidays = array("12/25", "12/26");
//...
?>