首页 > 解决方案 > 如何使用 Carbon/Laravel 检查年份是否已过?

问题描述

在 Laravel 中,我试图检查当前日期是在任何年份的特定日期之前还是之后。客户的会计年度在 10 月 31 日结束,我无法检查今天是在此之前还是之后。

我已经尝试使用 Carbon 中的内置比较函数,但我不知道要比较什么now(),因为所有 Carbon 实例似乎都包含特定的年份。我如何检查是否now()任何日历年中过了那一天?

下面的代码有效,但 usingdayOfYear()将在闰年返回不同的值,似乎是一个糟糕的解决方案。

if (now()->dayOfYear >= 304) {
    $current_year = now()->year;
} else {
    $current_year = now()->year - 1;
}

now()如果在任何一年的 10 月 31 日之后,我如何返回 true ?

标签: phplaravelphp-carbon

解决方案


看起来您已经知道如何使用带有 Carbon 对象的 getter来查找日期片段。如果您想查看当前日期是否在 10 月 31 日之后,请多使用它们:

if (now()->month > 10) {
    $current_year = now()->year;
} else {
    $current_year = now()->subYear()->year;
}

推荐阅读