【发布时间】:2011-03-03 17:15:03
【问题描述】:
我有一个假期类,其中包含具有不同时间段的多维假期数组,其工作原理基本上如下:
$this->bgArray = array( 'background' => array(
array( 'name' => 'SuperBowl',
'start' => '06 Feb 2011',
'end' => '07 Feb 2011'),
array( 'name' => 'presidentsday2011',
'start' => '21 Feb 2011',
'end' => '22 Feb 2011'),
array( 'name' => 'marchmadness6',
'start' => '01 Mar 2011',
'end' => '02 Mar 2011')));
当它被调用时,我希望能够选择正确的假期并运行后续代码,目前我将其设置为:
foreach($holidays->bgArray['background'] AS $holiday)
{
if (($holidays->today >= strtotime($holiday['start']) && $holidays->today < strtotime($holiday['end']) || (isset($_REQUEST[$holiday['name']])) ))
{
$background = $holiday['name'];
}
}
$this->set_background($background);
这段代码运行良好,但我个人觉得有比 foreach 循环更好的方法来编写这段代码。有没有人有什么建议?另外,不,我无权访问数据库,所以我必须在 PHP 中完成所有这些。感谢任何帮助,谢谢。
【问题讨论】:
-
当它被调用时,我希望能够选择正确的假期 | 什么什么时候调用?输入是什么?
-
如果假期不在固定日期,例如复活节,或劳动节,而是与其他一些事件(如春分)有所抵消。
-
根据今天的日期,看起来他们会设置 HTML 页面的背景或其他东西。不过,让我们问这个问题:将会有多少事件?如果没有太多,那么这件事的效率/美观是否重要?如果要添加很多,也许使用用户定义的排序函数按日期排序并尝试在数组上搜索函数? (只是一般的想法。)哦,如果您想要一个没有专用服务器的数据库(允许在日期字段上进行简单搜索),请尝试使用 SQlite。
-
@Felix Kling 当我调用这个背景类时,这是上面提供的数组。我调用包含该多维数组的类,然后在其上运行 foreach 循环以选择正确的假期。
-
@Marc B 我不必担心这样的日期,因为我只会处理在某种范围内运行的日期,不过感谢您考虑一些其他情况。
标签: php scheduling