我使用此代码在星期一开始的每周日历上来回导航1周:
$date = $sysback->input->get("date", false);
$date = ($date) ? $date : date("Y-m-d");
$time = strtotime($date);
$year = date("Y", $time);
$week = date("W", $time);
$date_from = date("Y-m-d", strtotime($year."W".$week));
$date_to = date("Y-m-d", strtotime($year."W".$week." +6days"));
$date_prev = date("Y-m-d", strtotime($year."W".$week." -7days"));
$date_next = date("Y-m-d", strtotime($year."W".$week." +7days"));
但问题是,如果我从本周回到2014年,我会得到奇怪的日期:
答案 0 :(得分:1)
问题是您正在混合日历年和ISO 8601周数。 ISO周通常跨越日历年边界,因此使用日历年将得到错误答案,
您需要在'o'
来电中使用'Y'
代替date()
来确定$year
这将为您提供与周数匹配的适当年份数
$year = date("o", $time);