php echo开放或关闭的营业时间取决于日期或日期
我已经回顾了这里的问答,还没有找到我想要做什么的答案。我想在数组中放入一个$variable,有点像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") 这是我的全部代码,它呼应营业时间的开放或关闭。正如您所看到的,我希望能够从代码的
$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");
//...
?>