我是laravel的新手我想知道是否有从数组计算年龄的方法,所以我的内容看起来像这样:
Collection {#231 ▼
#items: array:6 [▼
0 => "1928-11-18"
1 => "1938-06-15"
2 => "1939-03-30"
3 => "1941-11-08"
4 => "1940-04-29"
5 => "1987-06-24"
]
}
如何正确转换数组,使其只包含这样的年龄
Collection {#231 ▼
#items: array:6 [▼
0 => 90
1 => 80
2 => 79
3 => 77
4 => 87
5 => 31
]
}
答案 0 :(得分:1)
您还可以在集合上使用map方法
$collection = collect([0 => "1928-11-18",
1 => "1938-06-15",
2 => "1939-03-30",
3 => "1941-11-08",
4 => "1940-04-29",
5 => "1987-06-24"]);
$age = $collection->map(function ($item, $key) {
return Carbon::parse($item)->diff(Carbon::now())->format('%y');
});
return $age->all();
这会给你,
[
"89",
"79",
"79",
"76",
"78",
"30"
]
答案 1 :(得分:0)
使用Carbon's ->age
or diffInYears
和集合transform(或地图):
$dates->transform(function ($date) {
return \Carbon\Carbon::parse($date)->age;
});
注意:1928-11-18
出生的人是89岁,而不是90岁。
答案 2 :(得分:0)