【问题标题】:How Compare Times In Laravel如何在 Laravel 中比较时间
【发布时间】:2021-03-11 07:49:47
【问题描述】:

我想将我的变量从可能的形式与当前日期进行比较:

$a = explode('/', $request->expired_at);
$expiredAt = str_replace('/', '-', jalali_to_gregorian($a[0], $a[1], $a[2], ':'));

my $expiredAt 结果 -> “2021-03-25” -> 由用户在表单中插入

还有我的短句:

return Carbon::now()->toDateString() > $expiredAt ? false : true;

但此代码返回空结果。

【问题讨论】:

  • 请告诉我们$request->expired_at的值
  • $expiredAt 转换为日期,然后使用carbon to compare the dates 您目前正在比较两个日期的字符串表示形式,而这永远不会完全可靠

标签: php laravel timestamp


【解决方案1】:

Carbon 应该能够为您解析 expired_at,因此您解析 expired_at 并查看 now() 是否更大。

return ! now()->greaterThan(Carbon::parse($request->expired_at));

【讨论】:

    【解决方案2】:

    正如@RiggsFolly 在评论中所解释的,您正在比较 2 个字符串,这不是比较日期的最佳方式。
    您可以使用碳比较功能来做到这一点。
    这样:

    $expiredAt = \Carbon::createFromFormat('YOUR_FORMAT', $request->expired_at);
    return Carbon::now()->lte($expiredAt); // You can directly return the value of the comparison
    

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 1970-01-01
      • 2013-10-01
      • 2016-06-12
      • 2010-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多