setTime Carbon 还影响其他变量
setTime Carbon also affexts other variable
我有 Carbon Object Date,我更改了 start_date 和 end_date 的时间,结果是它们变成了同一件事,即使我将它保存在一个单独的变量中。
输入
$this->temp_mon_start = $date->setTime(8,0);
$this->temp_mon_end = $date->setTime(3,0);
dd($this->temp_mon_start, $this->temp_mon_end);
输出
date: 2021-11-15 03:00:00.0 Asia/Singapore (+08:00)
date: 2021-11-15 03:00:00.0 Asia/Singapore (+08:00)
它似乎将最后一个 setTime 保存在 $date
变量上,我不知道是什么导致了这个问题。我正在使用 Laravel 和 Carbon。有什么可能的选择吗?感谢您的帮助。
Carbon 就是这样工作的。它不会创建新实例,而是会更改现有实例。
所以没有使用:
$this->temp_mon_start = $date->setTime(8,0);
您可以使用:
$this->temp_mon_start = $date->copy()->setTime(8,0);
copy() 方法创建 Carbon 对象的新实例。
我有 Carbon Object Date,我更改了 start_date 和 end_date 的时间,结果是它们变成了同一件事,即使我将它保存在一个单独的变量中。
输入
$this->temp_mon_start = $date->setTime(8,0);
$this->temp_mon_end = $date->setTime(3,0);
dd($this->temp_mon_start, $this->temp_mon_end);
输出
date: 2021-11-15 03:00:00.0 Asia/Singapore (+08:00)
date: 2021-11-15 03:00:00.0 Asia/Singapore (+08:00)
它似乎将最后一个 setTime 保存在 $date
变量上,我不知道是什么导致了这个问题。我正在使用 Laravel 和 Carbon。有什么可能的选择吗?感谢您的帮助。
Carbon 就是这样工作的。它不会创建新实例,而是会更改现有实例。
所以没有使用:
$this->temp_mon_start = $date->setTime(8,0);
您可以使用:
$this->temp_mon_start = $date->copy()->setTime(8,0);
copy() 方法创建 Carbon 对象的新实例。