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'
// )
我在 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'
// )