php strtotime('this monday') 显示下周的日期

php strtotime('this monday') shows date of coming week

我想使用 strtotime 函数获取星期一至星期五。我使用了 ```strtotome('this monday') ,当我通过今天的日期(今天是星期五)时,它会给我下周的星期一。这假设给我正在进行的一周的星期一

只有当 $date 来自 weekInput 时我才能得到正确的日期

$weekInput = $request->input('week');
$weekInput = str_replace("-","", $weekInput);

if($request->input('week')) {
  $date = date("Y-m-d", strtotime("2021W34"));
} else {
  $date = date('Y-m-d');
}

$monday = Date('Y-m-d', (strtotime('this monday', strtotime($date))));
$tuesday = date('Y-m-d', (strtotime('this tuesday', strtotime($date))));
$wednesday = date('Y-m-d', (strtotime('this wednesday', strtotime($date))));
$thursday = date('Y-m-d', (strtotime('this thursday', strtotime($date))));
$friday = date('Y-m-d', (strtotime('this friday', strtotime($date))));

日期名称 documented 为“移至该名称的下一天”,因此乍一看,输出看起来是正确的。 this 未在此处添加任何内容,可能只是被忽略了。

由于您想按周进行手术,因此需要添加 week 组合:

var_dump(date('r', strtotime('monday this week')));
var_dump(date('r', strtotime('saturday this week')));
var_dump(date('r', strtotime('sunday this week')));
// Edge case (today's day name):
var_dump(date('r', strtotime('friday this week')));
string(31) "Mon, 16 Aug 2021 00:00:00 +0200"
string(31) "Sat, 21 Aug 2021 00:00:00 +0200"
string(31) "Sun, 22 Aug 2021 00:00:00 +0200"
string(31) "Fri, 20 Aug 2021 00:00:00 +0200"