laravel carbon 原始日期在添加年份后更改
laravel carbon original date changed after adding year
所以我尝试根据用户注册日期添加一年,我需要比较日期,但它正在从注册日期更新原始日期。
$registered_at = Carbon::parse('2020-10-17 03:05:03');
$final_date = $registered_at->addYear();
echo $registered_at.'<br>';
echo $final_date;
结果一样,我想把registered_at
日期保留到2020-10-1703:05:03
registered_at : 2021-10-17 03:05:03
final date: 2021-10-17 03:05:03
我期待2020-10-17 03:05:03
registered_at : 2020-10-17 03:05:03
final date: 2021-10-17 03:05:03
添加 addYear()
值:
$registered_at = Carbon::parse('2020-10-17 03:05:03');
$final_date = $registered_at->addYear(1); // added 1 year
echo $registered_at; // 2020-10-17 03:05:03
echo $final_date; // 2021-10-17 03:05:03
您需要先像这样复制实例:
$date_parse = Carbon::parse('2020-10-17 03:05:03');
$registered_at = $date_parse->copy();;
$final_date = $date_parse->addYear();
echo $registered_at.'<br>';
echo $final_date;
在 Carbon 中,当你调用任何方法时,它都会改变实例。
在你的情况下,你应该使用 copy()
方法在调用方法之前创建一个新实例。
例如:
$registered_at = Carbon::parse('2020-10-17 03:05:03');
$final_date = $registered_at->copy()->addYear();
echo $registered_at.'<br>';
echo $final_date;
如果您不希望您的实例在 add/sub/set 发生变化,请使用 CarbonImmutable
:
$registered_at = CarbonImmutable::parse('2020-10-17 03:05:03');
$final_date = $registered_at->addYear();
echo $registered_at.'<br>';
echo $final_date;
否则使用->copy()
创建一个新实例。
所以我尝试根据用户注册日期添加一年,我需要比较日期,但它正在从注册日期更新原始日期。
$registered_at = Carbon::parse('2020-10-17 03:05:03');
$final_date = $registered_at->addYear();
echo $registered_at.'<br>';
echo $final_date;
结果一样,我想把registered_at
日期保留到2020-10-1703:05:03
registered_at : 2021-10-17 03:05:03
final date: 2021-10-17 03:05:03
我期待2020-10-17 03:05:03
registered_at : 2020-10-17 03:05:03
final date: 2021-10-17 03:05:03
添加 addYear()
值:
$registered_at = Carbon::parse('2020-10-17 03:05:03');
$final_date = $registered_at->addYear(1); // added 1 year
echo $registered_at; // 2020-10-17 03:05:03
echo $final_date; // 2021-10-17 03:05:03
您需要先像这样复制实例:
$date_parse = Carbon::parse('2020-10-17 03:05:03');
$registered_at = $date_parse->copy();;
$final_date = $date_parse->addYear();
echo $registered_at.'<br>';
echo $final_date;
在 Carbon 中,当你调用任何方法时,它都会改变实例。
在你的情况下,你应该使用 copy()
方法在调用方法之前创建一个新实例。
例如:
$registered_at = Carbon::parse('2020-10-17 03:05:03');
$final_date = $registered_at->copy()->addYear();
echo $registered_at.'<br>';
echo $final_date;
如果您不希望您的实例在 add/sub/set 发生变化,请使用 CarbonImmutable
:
$registered_at = CarbonImmutable::parse('2020-10-17 03:05:03');
$final_date = $registered_at->addYear();
echo $registered_at.'<br>';
echo $final_date;
否则使用->copy()
创建一个新实例。