[英]how to convert date to age?
我想从我存储在数据库中的Ymd格式计算年龄。如何传递dob的结果是年龄。如何以这种格式传递存储的日期,例如20岁。
我的观点:
<th style="width: 10px;text-align: left">Age</th>
@if(count($members)>0)
@foreach($members as $key=>$member)
<tr>
<td>{{$key+1}}</td>
<td>{{$member['dob']}}</td>
@endforeach
@endif
我的控制器:
public function index()
{
$departments = [];
$members = Member::where('status', 0)
->leftjoin('member_details', 'members.cnic', '=', 'member_details.cnic')
->leftjoin('districts','districts.dis_id','=','members.district')
->paginate(100,['members.*','member_details.*','members.id as id','member_details.id as memberid','district','dis_name']);
for ($m = 0; $m <count($members); $m++) {
$finalDep = [];
$getDepartments = MemberInterestDepartment::where('cnic' , $members[$m]['cnic'])
->leftjoin('departments','departments.dep_id','=','member_interest_departments.department')
->get(['department','dep_name'])->toArray();
if(count($getDepartments)>1){
for($r=0; $r<count($getDepartments); $r++){
$finalDep[] = $getDepartments[$r]['dep_name'];
}
}else{
$finalDep = $getDepartments[0]['dep_name'];
}
$departments[] = array(
'id' => $members[$m]['id'],
'cnic' => $members[$m]['cnic'],
'name' => $members[$m]['name'],
'district' => $members[$m]['dis_name'],
'party_joining_year' => $members[$m]['party_joining_year'],
'dob' => $members[$m]['dob'],
'qualification' => $members[$m]['qualification'],
'profession' => $members[$m]['profession'],
'department' => $finalDep,
);
}
$allDepartments = Department::all();
return view('dashboard')->with(['pages' => $members,'members' => $departments, 'province' => $province, 'division' => $division, 'districts' => $districts, 'departments' => $allDepartments]);
}
首先导入您的控制器
use Carbon\Carbon;
然后在解析中传递dob值
$dob = '1990/01/15';
echo Carbon::parse($dob)->age .' years';
这是您可以执行的操作:
$departments[] = array(
'id' => $members[$m]['id'],
'cnic' => $members[$m]['cnic'],
'name' => $members[$m]['name'],
'district' => $members[$m]['dis_name'],
'party_joining_year' => $members[$m]['party_joining_year'],
'dob' => Carbon::parse($members[$m]['dob'])->age .' years',
'qualification' => $members[$m]['qualification'],
'profession' => $members[$m]['profession'],
'department' => $finalDep,
);
我不确定这一点,但我希望它能帮助Laravel将carbon包用于日期的所有功能https://carbon.nesbot.com/
Carbon内置了toDateString()
函数,该函数将转换时间戳,例如,假设这是使用该函数记录在表中的1998-03-10 07:37:45
toDateString ('1998-03-10 07:37:45')
结果将为Ymd format as(1998-03-10)
之后
并将微小的功能添加到相应的模型中
public static function carbonDatesToAge($toDateFormat)
{
$dateOfBirth = "$toDateFormat";
$dateOfBirthToYear = new \DateTime($dateOfBirth);
$todaysDate = new \DateTime();
echo $todaysDate->diff($dateOfBirthToYear)->y;
}
最后在您的视图文件中
方法一
<td>{{ App\Models\PersonalDetail::carbonDatesToAge($item->date_of_birth->toDateString()) }}</td>
仅在方法一失败时使用
<td>{{ App\Models\PersonalDetail::carbonDatesToAge(Carbon\Carbon::parse($item->date_of_birth)->format('Y-m-d')) }}</td>
只需将您的模型名称更改为Member
并在视图中使用它即可
如果您发现任何困难,请在下面评论
请享用!!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.