签到打卡中,如果周日是第一天,则会在周日当天时,定位本周日期,会跳转至少下一周,不复合中国人周一是一周的第1天的习惯。
小写'w'表示取这天在一星期中的第几天,以数字表示,0(表示星期天)到 6(表示星期六)
大写'W'表示取这天在一年中的第几周,以数字表示,每周从星期一开始。例如:42(当年的第 42 周)
懒得写判断了,时间紧,资源一样,使用代码长度换取运行速度
//日期计算 自动获取当前日期前后七天的号
public function dateAction()
{
//date("t") 当月的天数; date("y") 当前的年数 ;date("m") 当前的月数;date("d") 当前几号
$time = '';
$format='d';
$time = $time != '' ? $time : time();
//获取当前周几
$week = date('w',$time);
switch ($week){
case 0 :
return $this->dateNumber=[
(int)date($format,strtotime("-6 day")),
(int)date($format,strtotime("-5 day")),
(int)date($format,strtotime("-4 day")),
(int)date($format,strtotime("-3 day")),
(int)date($format,strtotime("-2 day")),
(int)date($format,strtotime("-1 day")),
(int)date($format,$time),
//(int)date($format ,strtotime( '+' . $i-$week .' days', $time))
];
break;
case 1 :
return $this->dateNumber=[
(int)date($format,$time),
(int)date($format,strtotime("+1 day")),
(int)date($format,strtotime("+2 day")),
(int)date($format,strtotime("+3 day")),
(int)date($format,strtotime("+4 day")),
(int)date($format,strtotime("+5 day")),
(int)date($format,strtotime("+6 day")),
];
break;
case 2 :
return $this->dateNumber=[
(int)date($format,strtotime("-1 day")),
(int)date($format,$time),
(int)date($format,strtotime("+1 day")),
(int)date($format,strtotime("+2 day")),
(int)date($format,strtotime("+3 day")),
(int)date($format,strtotime("+4 day")),
(int)date($format,strtotime("+5 day")),
];
break;
case 3 :
return $this->dateNumber=[
(int)date($format,strtotime("-2 day")),
(int)date($format,strtotime("-1 day")),
(int)date($format,$time),
(int)date($format,strtotime("+1 day")),
(int)date($format,strtotime("+2 day")),
(int)date($format,strtotime("+3 day")),
(int)date($format,strtotime("+4 day")),
];
break;
case 4 :
return $this->dateNumber=[
(int)date($format,strtotime("-3 day")),
(int)date($format,strtotime("-2 day")),
(int)date($format,strtotime("-1 day")),
(int)date($format,$time),
(int)date($format,strtotime("+1 day")),
(int)date($format,strtotime("+2 day")),
(int)date($format,strtotime("+3 day")),
];
break;
case 5 :
return $this->dateNumber=[
(int)date($format,strtotime("-4 day")),
(int)date($format,strtotime("-3 day")),
(int)date($format,strtotime("-2 day")),
(int)date($format,strtotime("-1 day")),
(int)date($format,$time),
(int)date($format,strtotime("+1 day")),
(int)date($format,strtotime("+2 day")),
];
break;
case 6 :
return $this->dateNumber=[
(int)date($format,strtotime("-5 day")),
(int)date($format,strtotime("-4 day")),
(int)date($format,strtotime("-3 day")),
(int)date($format,strtotime("-2 day")),
(int)date($format,strtotime("-1 day")),
(int)date($format,$time),
(int)date($format,strtotime("+1 day")),
];
break;
}
return $this->dateNumber;
}转载请注明:PHP开发日志 >> APP开发 » date(w) 周日为一周的第一天时间问题