碳检查当前时间是否在两个时间之间

问题描述

我想检查当前时间是否在上午 8 点到晚上 8 点之间。到目前为止,我已经尝试过

 $startTime = \Carbon\Carbon::createFromFormat('H:i a','08:00 AM')->toString();
$endTime = \Carbon\Carbon::createFromFormat('H:i a','08:00 PM')->toString();
$currentTime = \Carbon\Carbon::Now();
if($currentTime->greaterThan($startTime) && $currentTime->lessthan($endTime)){
    dd('In Between');
}else{
    dd('In Not Between');
}

但是因为碳日期是日期类型而其他时间是字符串类型我无法比较它们。

有什么帮助吗?

解决方法

$now = Carbon::now();

$start = Carbon::createFromFormat('H:i a','08:00 AM');
$end =  Carbon::createFromFormat('H:i a','08:00 PM');


if ($now->isBetween($start,$end) {
  // between 8:00 AM and 8:00 PM
} else {
  // not between 8:00 AM and 8:00 PM
}

要确定当前实例是否在其他两个实例之间,您可以使用恰当命名的 between() 方法(或 isBetween() 别名)。第三个参数指示是否应该进行等于比较。默认为真,决定其是否在边界之间或等于边界。

相关问答

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