如何使用碳检查当前年份的日期?

问题描述 投票:1回答:3

我有yyyy-mm-dd格式的几个日期并操纵它我正在使用Carbon库。

我的问题是:我怎么知道当年是否已经有一个随机日期?

例如今天是2018-10-19,如果我将它们与某些日期进行比较,则返回以下内容:

$current = '2018-10-19';
$date1 = '2018-10-20'; return false 
$date2 = '2018-11-21'; return false
$date3 = '2018-07-07'; return true

我尝试过以下方法:

$current = Carbon::now();
$date_1 = Carbon::parse('2018-07-21');

if($current > $date_1)
{
    echo 'The date was in the current year';
}

我遇到的问题是我不知道如何应用这个条件只在当前年份找到一个日期,因为如果我将当前日期与上一年的日期进行比较,它仍然会返回true。我怎样才能做到这一点?谢谢

php laravel datetime
3个回答
3
投票

你需要仔细看看docs。您可以使用equalTo函数轻松比较日期。一个例子:

$first = Carbon::create(2012, 9, 5, 23, 26, 11);
$second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver');

var_dump($first->equalTo($second));                // bool(false)
var_dump($first->notEqualTo($second));             // bool(true)

该示例和更多示例也列在文档中。


2
投票
$current = Carbon::now();
$date_1 = Carbon::parse('2018-07-21');

if($current > $date_1 && $current->year === $date_1->year)
{
    echo 'The date was in the current year';
}

将这些年与您的病情进行比较。


1
投票

对于稍微容易阅读的版本,您可以将Carbon的between()/isBetween()方法与startOfYear()结合使用:

$date = Carbon::parse('2018-10-19');

if ($date->isBetween(
    Carbon::now()->startOfYear(),
    Carbon::now()
)) {
    echo 'The date was in the current year';
}
© www.soinside.com 2019 - 2024. All rights reserved.