使用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>';