签到打卡中,如果周日是第一天,则会在周日当天时,定位本周日期,会跳转至少下一周,不复合中国人周一是一周的第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; }