【问题标题】:php carbon between dates inclusive包含日期之间的php碳
【发布时间】:2021-09-27 03:57:46
【问题描述】:

我想得到两个日期之间的布尔结果,这是我的代码。

$now = Carbon::now();
$now = 2021-09-29 00:00:00

dd( $now->between('2021-09-29 08:00:00', '2021-10-05 23:59:59') );

this would returns false;

尝试转储时总是得到错误值。有没有办法让碳日期给出包容性的包容性结果,以便它包括第一个和第二个日期之间的范围。

基本上我想获取 2021-09-29 00:00:00 和 2021-10-05 23:59:59 之间的所有日期,我想测试 2021-09-29 08:00:00 是否在里面在那个日期之间。我还希望碳在 2021-09-29 00:00:00 和 2021-10-05 23:59:59 之间给出包容性结果

【问题讨论】:

  • 因此,在 dd() 中,您希望根据日期是否在给定日期之间返回 true 或 false。对吗?
  • 但是 29/9 12 点早于 29/9 8 点?
  • 基本上我想获取 2021-09-29 00:00:00 和 2021-10-05 23:59:59 之间的所有日期,我想测试是否 2021-09-29 08: 00:00 在该日期之间@mulquin
  • 是的@PHPGeek,但我希望碳在 2021-09-29 00:00:00 和 2021-10-05 23:59:59 之间给出包容性结果

标签: php carbon


【解决方案1】:

按照您的评论进行:

基本上我想获取 2021-09-29 00:00:00 和 2021-10-05 23:59:59 之间的所有日期,我想测试 2021-09-29 08:00:00 是否在里面日期之间

典型的做法是:

dd( $now->gte('2021-09-29') && $now->lt('2021-10-06') )

这对应于以下原始 SQL:

WHERE NOW() >= '2021-09-29' AND NOW() < '2021-10-06'

请注意,第二个比较包括2021-10-05 的一整天。

【讨论】:

  • 收到错误消息:“在 bool 上调用成员函数 lt()”@Tim 你确定语法 ->lt('2021-10-06')
【解决方案2】:

Carbon Documentation 开始,between 函数的第三个参数包括检查中的边界,默认情况下为 true。

在您的问题中,您似乎将 $now 设置为起始边界,而不是要检查的实际值。

$now = '2021-09-29 08:00:00'

dd( $now->between('2021-09-29 00:00:00', '2021-10-05 23:59:59') );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多