使用php构建每周下拉列表

使用php构建每周下拉列表,php,time,Php,Time,我有我运行的报告,它们基于每周周三(星期二)的每周报告。示例如下: else if($_GET['week'] =='aug13th2014'){ $date_from = "2014-08-13 00:00:00"; $date_to = "2014-08-19 23:59:59"; $date_display = "Aug 13th to Aug 19th 2014"; } 然后我回显选择 echo "<option value='aug13th2014'&g

我有我运行的报告,它们基于每周周三(星期二)的每周报告。示例如下:

else if($_GET['week'] =='aug13th2014'){
    $date_from = "2014-08-13 00:00:00";
    $date_to = "2014-08-19 23:59:59";
    $date_display = "Aug 13th to Aug 19th 2014";
}
然后我回显选择

echo "<option value='aug13th2014'>Aug 13th to Aug 19th 2014</option>";
因此,如果用户选择该周并提交表单,那么它将使用$date_from和$date_来运行我的报告并返回该周的值

这一切都很好,但每周都要手动创建那些else if语句,这是一件痛苦的事情,如果我没有集中精力,那么我可能会在日期值上出错

我想做的是使它自动化。因此,我认为我将使用一个脚本来执行以下操作:

请注意,尽管我说从周三到周二是正式的

今天约会 查找上一个星期三的日期 检查自周三00:00:00起是否已过去168小时7天 如果没有,那么找到前一个星期三,然后得到该点后168小时的日期。 这将给我两个日期了。2014年8月13日星期三,我会把时间定在00:00:00,然后我会把日期定在8月19日星期二。 然后我决定我要在下拉列表中显示多少周,并循环多次 然后我需要在下一个循环中从星期三和星期二的日期中扣除168小时,以获得前一周的时间。 无论我得到多少个循环,都要重复这个步骤 我的问题是,在我开始讨论所有这些问题之前,有没有更有效的方法?也许有一个php类可以解决这类问题?我没有使用任何框架,也不值得仅仅为了这份工作而转换。我的方法是否有任何明显的缺陷或看起来不错

我关心的一个问题是如何处理夏时制,即时间来回一个小时,我想我可以一年手动更改两次,但可能有一个更简单的解决方案,PHP函数strotime可以在这里帮助您

echo strtotime('Last Wednesday');
我不会:

echo "<option value='aug13th2014'>Aug 13th to Aug 19th 2014</option>";
而是使用时间戳,以便对下拉列表进行如下编码:

$date = strtotime('Last Wednesday');
$weeks = 5;
$i = 1;
echo '<select>';

while ($i <= $weeks) {

    echo '<option value="'.$date.'">Week of ' . date('D d M', $date) . '</option>';

    $date = strtotime( date('Y-m-d', $date) . ' + 7 Days');


    $i++;
}

echo '</select>';