Pat*_*ros 2 php laravel php-carbon laravel-5
我有一个数据库中的这个集合,我有一个名为"event_date"的列.
我想要的只是获取集合中该列的日期名称.
我知道你可以使用Carbon来获取名称的日期,例如,一个名为的方法->format(),但是我得到一个错误,说这个方法不存在.
我的代码到目前为止如下:
$collection = MyModel::all();
Run Code Online (Sandbox Code Playgroud)
里面有"event_date"属性或列.从那以后,我想得到将它们放入数组或集合中的日期名称,并最终计算那些天数.
为了实现这一点,我尝试了以下方法:
我尝试了->pluck()如下方法:
$filtered = collect([
'myDates'=>$collection->pluck('event_date'),
]);
Run Code Online (Sandbox Code Playgroud)
而dd($filtered)看起来像如下:
Collection {#209 ?
#items: array:1 [?
"myDates" => Collection {#243 ?
#items: array:30 [?
0 => Carbon {#244 ?
+"date": "2017-02-05 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
1 => Carbon {#218 ?
+"date": "2017-01-15 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
2 => Carbon {#250 ?
+"date": "2016-09-25 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
3 => Carbon {#249 ?
+"date": "2016-05-22 00:00:00.000000"
+"timezone_type": 3
+"timezone": "America/Mexico_City"
}
...
Run Code Online (Sandbox Code Playgroud)
我试着得到如下的日期名称:
$Daynames = $filtered->each(function($item,$key){
return $item->myDates->format('l');
});
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
未定义的属性:Illuminate\Support\Collection :: $ myDates
是否只有将daynames放入数组或集合中?还有另一种方法吗?
小智 9
你可以用不止一种方式来做
Carbon::parse($date)->dayName; // Monday ...
Carbon::parse($date)->format('l'); // Monday ...
Run Code Online (Sandbox Code Playgroud)
自定义位置
Carbon::parse($date)->locale('fr')->dayName;// Lundi ...
Run Code Online (Sandbox Code Playgroud)
你在日期集合上调用format(),而你应该在Carbon对象上调用它.你需要另一个循环来遍历myDates集合中的所有日期并格式化它们,例如:
$Daynames = [];
$filtered->each(function($item,$key) use (&$Daynames) {
$item->each(function($date) use (&$Daynames) {
$Daynames[] = $date->format('l');
});
});
Run Code Online (Sandbox Code Playgroud)
通过碳库我们可以很容易地得到它。
使用图书馆
use Carbon\Carbon;
Run Code Online (Sandbox Code Playgroud)获取日期
$date = '2018-11-15';
$d = new DateTime($date);
$d->format('l'); //pass l for lion aphabet in format
Run Code Online (Sandbox Code Playgroud)输出是Thursday。它在 Laravel 中对我有用
| 归档时间: |
|
| 查看次数: |
13471 次 |
| 最近记录: |