dayJS 日期函数到 PHP Carbon

dayJS date function to PHP Carbon

我在 dayjs 中有以下日期处理,我试图在 PHP 中复制但失败了。我希望两者都在 return 2020 年 7 月 27 日星期一。有人可以帮忙吗?

JS - return2020 年 7 月 27 日星期一

var firstOfMonth = dayjs('2020-08-01'),
    weekOneStart = firstOfMonth.clone().day(1); // Monday

console.log(weekOneStart);

PHP - return2020 年 8 月 3 日星期一

$d = Carbon::createFromFormat('Y-m-d', '2020-08-01');
echo $d->firstOfMonth(1);

这两个函数是不同的,JS函数获取的是一周的第一个星期一,而Carbon函数获取的是一个月的第一个星期一。您可以在 firstOfMonth 的 Carbon 代码中看到这一点:

public function firstOfMonth($dayOfWeek = null)
{
    $this->startOfDay();

    if ($dayOfWeek === null) {
        return $this->day(1);
    }

    return $this->modify('first '.static::$days[$dayOfWeek].' of '.$this->format('F').' '.$this->year);
}

如果你想得到一周的第一天,那么你需要使用$d->startOfWeek();

$d = Carbon::createFromFormat('Y-m-d', '2020-08-01');
$d->startOfWeek();
// object(Carbon\Carbon)(
//   'date' => '2020-07-27 00:00:00.000000',
//   'timezone_type' => 3,
//   'timezone' => 'America/New_York'
// )