如何按生日算出这个月的退休金

how to get retirement of this month by date of birth

我想按出生日期显示当月退休。我有一列 dob(格式为 1960-12-21)。现在我必须计算从 dob 到当月的 60 年。如果当前月份是 2020 年 10 月 并且出生日期是 1960-09-21 那么应该获取记录。今天的日期并不重要。但是,如果月份是 2020 年 9 月或 2020 年 11 月,则数据不应显示。

如果当前月份已满 60 年,则应按当前月份获取记录。

意味着结果应该是:

本月退休为:abc,xyz等

我试过了,但没有得到结果:

控制器是:

 public function index()
    {
        $retirement = User::select('name','dob')->get();
        foreach($retirement as $retirement)
        {
            echo Carbon::parse($retirement->dob)->age;
          
        }
    }

只显示年份。

使用 whereMonth()whereYear() 查找当前月份和 60 年前的年份。您可以通过获取 now() 然后分别访问 monthyear 属性来实现。

$retirement = User::whereMonth('dob', now()->month)
                  ->whereYear('dob', now()->subYears(60)->year)
                  ->get();