检查一个日期是否是另一个日期?

问题描述

我正在尝试检查一个日期时间是否在另一个日期时间之后,但是它似乎不起作用。我只是在使用>=运算符,但是没有按预期运行?

代码如下:

public function hasCompleted() {
    return Carbon::parse($this->withdrawable_at) >= Carbon::Now();
}

我正在使用Carbon包,这是一个here找到的DateTime PHP库。

对于以下数据,它似乎返回true,但不应返回。

2020-11-13 02:59:04,2020-11-12 15:17:31

解决方法

碳有自己的方法,称为isAfter和isBefore

    public function hasCompleted() {
    return Carbon::parse($this->withdrawable_at)->isAfter(Carbon::now());
}
,

您可以使用[datesindex:]>>=<比较<=对象,因此它也可以完美地与DateTime实例一起使用:

Carbon

输出var_dump(Carbon::parse('2020-11-13 02:59:04') >= Carbon::parse('2020-11-12 15:17:31')); var_dump(Carbon::parse('2020-11-12 15:17:31') >= Carbon::parse('2020-11-13 02:59:04')); ,然后输出true(在这种情况下,因为13> 12),这是预期的行为。最新日期被认为大于最早的日期。我觉得它很直观,但是如果对您而言不够明确,则可以使用false / isAfter,请注意,这些方法仅在内部使用isBefore>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...