【问题标题】:Carbon check if current time between two timeCarbon 检查当前时间是否介于两个时间之间
【发布时间】:2021-06-29 03:31:06
【问题描述】:

我想检查当前时间是否介于上午 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');
}

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

有什么帮助吗?

【问题讨论】:

  • 去掉 ->toString()?
  • 但我现在没时间。现在是 00:00:00。那么如何获取今天的日期并将时间更改为早上 8 点
  • @Psycho 我的错!我已将开始时间设置为上午 12 点,所以它正在工作 thx
  • 很好,不客气

标签: php datetime time php-carbon


【解决方案1】:
$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() 别名)。第三个参数指示是否应该进行相等比较。默认值为 true,用于确定其是否在边界之间或等于边界。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多