到现在为止年龄()可以使用下面的代码
// Accessor for Age.
public function getAgeAttribute()
{
return Carbon::parse($this->attributes['birth_date'])->age;
}
但如果这个人死了怎么办?
在数据库[death_date]字段中存储null或yyyy-mm-dd
那么如何计算出生日期〜死亡日期之间的年龄
// Accessor for Age.
public function getAgeAttribute()
{
if (!is_null($this->attributes['death_date']))
{
// how to calculate death_date - birth_date = realAge
return $realAge;
}
return Carbon::parse($this->attributes['birth_date'])->age;
}
以防万一有人查看此帖子,这是我的回答
// Accessor for Age.
public function getAgeAttribute()
{
// return is_null($this->attributes['death_date'])
// ? Carbon::parse($this->attributes['birth_date'])->age
// : Carbon::parse($this->attributes['birth_date'])->diff(Carbon::parse($this->attributes['death_date']))->format('%y');
// oh, Carbon will auto convert NULL to now(), so no need the upper code
return Carbon::parse($this->attributes['birth_date'])->diff(Carbon::parse($this->attributes['death_date']))->format('%y');
}
答案 0 :(得分:1)
您可以按以下方式解决:
public function getAgeAttribute()
{
if (!is_null($this->attributes['death_date']))
{
$realAge = Carbon::parse($this->attributes['death_date'])->diff(Carbon::parse($this->attributes['birth_date']))->format('%y');
return $realAge
}
return Carbon::parse($this->attributes['birth_date'])->age;
}
答案 1 :(得分:0)
$birth_date = Carbon::parse($this->attributes['birth_date']);
$death_date = Carbon::parse($this->attributes['death_date']);
echo $birth_date->diffInYears($death_date);
答案 2 :(得分:0)
假设您正在寻找多年的年龄,请尝试以下方法:
$birth = new Carbon($this->attributes['birth_date']);
$death = new Carbon($this->attributes['death_date']);
$age = $birth->diffInYears($death); // Returns Integer