gpt4 book ai didi

PHP Carbon 类改变了我原来的变量值

转载 作者:IT王子 更新时间:2023-10-29 00:05:40 27 4
gpt4 key购买 nike

我正在尝试在我正在创建的日历类型的东西中制作一些导航按钮,并且我正在使用碳来创建日期。

这是 Controller 中的代码:

if ($date == null) {
$date = \Carbon\Carbon::now();
} else {
$date = \Carbon\Carbon::createFromFormat('Y-m-d', $date);
}
$navDays = [
'-7Days' => $date->subDay('7')->toDateString(),
'-1Day' => $date->subDay('1')->toDateString(),
'Today' => $date->today()->toDateString(),
'+1Day' => $date->addDay('1')->toDateString(),
'+7Days' => $date->addDay('7')->toDateString()
];

然后我就是我的观点,我正在这样做:

@foreach($navDays as $key => $i)
<li>
<a href="/planner/bookings/{{ $i }}" class="small button">
{{ $key }}
</a>
</li>
@endforeach

这个问题是,碳似乎在数组创建过程中改变了 $date,因为这些是我得到的日期($date 被设置为 2015-11- 29):

<ul class="button-group even-5">
<li><a href="/planner/bookings/2015-11-22" class="small button">-7Days</a></li>
<li><a href="/planner/bookings/2015-11-21" class="small button">-1Day</a></li>
<li><a href="/planner/bookings/2015-12-22" class="small button">Today</a></li>
<li><a href="/planner/bookings/2015-11-22" class="small button">+1Day</a></li>
<li><a href="/planner/bookings/2015-11-29" class="small button">+7Days</a></li>
</ul>

有人知道我做错了什么吗?

最佳答案

当您对 Carbon 对象运行这些方法时,它会更新对象本身。因此 addDay() 将 Carbon 的值向前移动了一天。

这是您需要做的:

$now = Carbon::now();

$now->copy()->addDay();
$now->copy()->addMonth();
$now->copy()->addYear();
// etc...

copy 方法本质上是创建一个新的 Carbon 对象,然后您可以在不影响原始 $now 变量的情况下应用更改。

综上所述,复制Carbon实例的方法有:

  • 复制
  • clone - copy
  • 的别名

查看文档:https://carbon.nesbot.com/docs/

关于PHP Carbon 类改变了我原来的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413877/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com