【问题标题】:How to select holidays in PHP?如何在 PHP 中选择假期?
【发布时间】: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


【解决方案1】:

foreach 适用于数组。您可能希望直接在数组中使用 unix 时间戳,因为始终使用 strtotime 并不是最快的方法。

您还可以将数组分成几个月,每个月都有一个子数组。这样您就不必遍历所有假期,而只需遍历要显示的月份的特定假期。

【讨论】:

  • 非常感谢您的建议,很棒的想法,我特别喜欢直接使用 unix 时间戳,可以减少函数调用。感谢您的帮助。
猜你喜欢
  • 2016-12-29
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-16
  • 2010-10-30
  • 1970-01-01
相关资源
最近更新 更多