Php 日历认为当前日期是日历的开始

Php 日历认为当前日期是日历的开始,php,Php,我已经把一个周视图日历放在一起,允许用户使用表单上的按钮前后移动一周。一切都很好,除了当日历第一次打开时,如果当前日期是一周的开始,那么其余的日子都结束了 这是我到目前为止所拥有的 if(isset($_POST['add_week'])){ $last_week_ts = strtotime($_POST['last_week']); $display_week_ts = $last_week_ts + (3600 * 24 * 7); } else if (isset($

我已经把一个周视图日历放在一起,允许用户使用表单上的按钮前后移动一周。一切都很好,除了当日历第一次打开时,如果当前日期是一周的开始,那么其余的日子都结束了

这是我到目前为止所拥有的

if(isset($_POST['add_week'])){
     $last_week_ts = strtotime($_POST['last_week']);
     $display_week_ts = $last_week_ts + (3600 * 24 * 7);
} else if (isset($_POST['back_week'])) {
     $last_week_ts = strtotime($_POST['last_week']);
     $display_week_ts = $last_week_ts - (3600 * 24 * 7);
} else {
    $display_week_ts = floor(time() / (3600 * 24)) * 3600 * 24;
}

$week_start = date('d-m-Y', $display_week_ts);

for ($i = 0; $i < 7; $i++) {
    $current_day_ts = $display_week_ts + ($i * 3600 *24);
    echo date('d-m-Y', $current_day_ts); 
}
它调用当前日期,但$week_start必须是一周的第一天,但我已经尝试了所有我能找到的方法。我试过了

$display_week_ts = strtotime("Monday noon");
这似乎很有效,直到10月29日(星期一)为止,在这一点上,它似乎跳过了一天,将10月29日改为星期二

我在这个网站上找到了本周初的另一个主题,但我无法成功实现其中任何一个

我将非常感谢在这件事上的任何帮助,我已经为此工作了三天了……

试试这个:

$display_week_ts = floor(time() / (3600 * 24)) * 3600 * 24; 
$dow = date("w", $display_week_ts);
$dow = ($dow + 6) % 7;
$display_week_ts -= $dow * 3600 * 24;

$monday = new DateTime(date("Y-m-d", $display_week_ts));
现在,
$monday
包含当前周的星期一的日期。将此对象存储在会话中。当你需要转移到下周时,找到下周一

$monday->modify('+1 week');
要查找上一个星期一,请使用

$monday->modify('-1 week');

找到新的星期一后,将其存储回会话。

您好,非常感谢您,我如何将其合并到我的代码中?在我尝试移动到下一个或最后一个之前,它工作正常week@user1267224显示第一周时,在会话中存储
$display\u week\u ts
的值。然后,当移动到下周时,将
3600*24
添加到该值并存储回会话中。同样,当移到前一周时进行减法。然后,您可以始终使用此值作为日历的开始日期。您好,我设法使其工作,但现在发生的情况与我使用strotime(“周一中午”)时的情况相同,它跳过了2012年10月28日的一天。这可能是因为这是英国夏季时间结束的同一天,时钟倒转一周hour@user1267224我更新了我的答案,使用了一种不同的技术-尝试一下。您好,仍然不起作用,最简单的是,只要我添加行“$monday=new DateTime(date(“Y-m-d”),就可以了我的页面上有一半的div无缘无故地消失了!!不过,我遇到的最大问题是,当我尝试在会话中保存$monday,然后使用$monday=$\u会话['monday']$周一->修改(“+1周”);我收到以下错误“警告:DateTime::modify()[DateTime.modify]:DateTime对象的构造函数未正确初始化”。对不起,我很痛苦
$monday->modify('-1 week');