繁体   English   中英

如何将日期转换为年龄?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM