php获取当前日期所在自然周周一周末以及前后自然周始末
首先,获取当前时间,date函数,方法较多,展示一种:
$present = date('y-m-d',time());//当前日期
然后获取当前所在自然周周一周末,看了一些网上的代码,一个案例如下:`
$first = 1;//第一天为周一则为1,第一天为周末为0
$w = date("w",strtotime($present)) ? date("w",strtotime($present)) - $first : 6;
//获取本周开始日期,如果$w是0,则表示周日,减去 6 天
$week_start = date('Y-m-d', strtotime("$present-$w"."days"));
//本周结束日期
$week_end = date('Y-m-d', strtotime("$week_start +6 days"));
思路为条件赋值算出需要减去的天数(语法:strtotime("date - 时间单位数量"."时间单位")
)来求出所在自然周周一。strtotime函数中days为时间单位,不可缺少。
这种方法语法相对复杂。
都存在days这样的嵌入自然语言单位了,那必定有其他。查阅后果然:
echo(strtotime("last Sunday"));
echo(strtotime("+1 week") . "<br>");
echo(strtotime("now") . "<br>");
既然如此那么本周一和周末就可以表示为:
//本周一
$test_Monday = date('Y-m-d',strtotime("last Sunday+1days"));
//本周末
$test_Sunday = date('Y-m-d',strtotime("next Monday-1days"));
要获得上周的周一和周末,我们可以再大胆一点:
$last_week_start = date('Y-m-d', strtotime('last week monday'));
$last_week_end = date('Y-m-d', strtotime('last week sunday'));
还要什么当前时间算什么当前周几啊,GPT赶紧引进吧!
Tips:
strtotime
周五查周五,前(last)后(next)差7天;- 前一个月后一个月以此类推。