我如何使用 Laravel blade 中的碳循环获取从今天开始接下来 10 天的日期
How can I loop to get dates of next 10 days from today using carbon in Laravel blade
我一直在尝试在 Laravel blade.php
中创建未来 10 天的下拉列表(以及可选的日期) blade.php
我能够使用 \carbon\carbon::now();
但是当我尝试在同一个变量中添加一天时,它给出了一个错误
这是我的代码-
<select class="form-control">
<?php
$today = \Carbon\Carbon::now()->format('m-d-Y (l)');
$iterate = 0;
for($iterate=0;$iterate<10;$iterate++) {
?>
<option value="{{$today}}">
{{$today}}
</option>
<?php
$today = $today->addDay(); } //this one isn't working
?>
</select>
错误-
[2021-10-22 01:21:32] local.ERROR: Call to a member function addDay() on string (View: /var/www/vhosts/example.com/dummy.example.com/resources/views/superadmin/side_menu_superadmin.blade.php)
我该如何解决,
提前致谢。
您可以使用 CarbonPeriod
生成日期范围。试试这个代码
@php
$now = Carbon\Carbon::now();
$startDate = $now->clone()->startOfDay();
$endDate = $now->clone()->addDays(10)->endOfDay();
//change 10 to whatever you needed
$datePeriod = collect(Carbon\CarbonPeriod::create($startDate, $endDate)->toArray())
->map(function($eachCarbonDate){
return $eachCarbonDate->format('m-d-Y (l)');
});
@endphp
<select class="form-control">
@foreach ($datePeriod as $eachFormattedDate)
<option value="{{$eachFormattedDate}}">
{{$eachFormattedDate}}
</option>
@endforeach
</select>
这是现场演示 link 到 phpsandbox
我一直在尝试在 Laravel blade.php
中创建未来 10 天的下拉列表(以及可选的日期) blade.php
我能够使用 \carbon\carbon::now();
但是当我尝试在同一个变量中添加一天时,它给出了一个错误
这是我的代码-
<select class="form-control">
<?php
$today = \Carbon\Carbon::now()->format('m-d-Y (l)');
$iterate = 0;
for($iterate=0;$iterate<10;$iterate++) {
?>
<option value="{{$today}}">
{{$today}}
</option>
<?php
$today = $today->addDay(); } //this one isn't working
?>
</select>
错误-
[2021-10-22 01:21:32] local.ERROR: Call to a member function addDay() on string (View: /var/www/vhosts/example.com/dummy.example.com/resources/views/superadmin/side_menu_superadmin.blade.php)
我该如何解决, 提前致谢。
您可以使用 CarbonPeriod
生成日期范围。试试这个代码
@php
$now = Carbon\Carbon::now();
$startDate = $now->clone()->startOfDay();
$endDate = $now->clone()->addDays(10)->endOfDay();
//change 10 to whatever you needed
$datePeriod = collect(Carbon\CarbonPeriod::create($startDate, $endDate)->toArray())
->map(function($eachCarbonDate){
return $eachCarbonDate->format('m-d-Y (l)');
});
@endphp
<select class="form-control">
@foreach ($datePeriod as $eachFormattedDate)
<option value="{{$eachFormattedDate}}">
{{$eachFormattedDate}}
</option>
@endforeach
</select>
这是现场演示 link 到 phpsandbox