Как проверить, была ли дата в текущем году с использованием углерода? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть несколько дат в формате гггг-мм-дд, и для управления ими я использую библиотеку Углерода.

Мой вопрос: как я могу узнать, была ли случайная дата уже в текущем году?

Например, сегодня 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.Как мне этого добиться?Спасибо

Ответы [ 3 ]

0 голосов
/ 19 октября 2018
$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';
}

Сравните годы с вашим состоянием.

0 голосов
/ 20 октября 2018

Для немного более легкой для чтения версии вы можете использовать метод between()/isBetween() от Carbon в сочетании с startOfYear():

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

if ($date->isBetween(
    Carbon::now()->startOfYear(),
    Carbon::now()
)) {
    echo 'The date was in the current year';
}
0 голосов
/ 19 октября 2018

Вам нужно поближе взглянуть на документы .Вы можете легко сравнивать даты, используя функцию 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)

Этот и другие примеры также перечислены в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...