我有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。我该如何实现?谢谢
答案 0 :(得分: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)
该示例以及更多示例也在文档中列出。
答案 1 :(得分: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';
}
将年份与您的状况进行比较。
答案 2 :(得分: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';
}