【问题标题】:Get the difference between two dates in every rows获取每行中两个日期之间的差异
【发布时间】:2017-03-16 12:24:56
【问题描述】:

我需要获取 2 个日期之间的差异,而不仅仅是 2 个特定日期之间的差异,我说的是一个包含“pdt_expires”列的表,我想显示距离该日期还有多少天,但在每一行.例如:

  • 大米 - 2 磅 - 54 天后过期
  • 豆类 - 3 磅 - 31 天后到期

我只看到了 2 个特定日期的数千种解决方案,但没有针对这种情况。我想知道我需要:

  • Product Model 中访问“pdt_expire”并使用 Carbon 获取最终值的函数

或 - View 中的一个函数,用于获取 $product->pdt_expire 并获取最终值

所以任何帮助都会很棒,谢谢。

【问题讨论】:

    标签: php laravel date eloquent blade


    【解决方案1】:

    如何使用简单的 DATEDIFF 查询来实现它:

    ProductModel::select([
        'products.*',
        \DB::raw('DATEDIFF(pdt_expires, NOW()) as expires_in')
    ])->get();
    

    因此,在您拥有的每个产品中,都会有一个名为expires_in 的附加列,用于存储NOWpdt_expires 之间的不同日期。

    日期:How to get the number of days of difference between two dates on mysql?

    【讨论】:

    • 以为我永远不会这么说,但它确实有效,但请告诉我,您在表中创建了这个名为 expires_in 的“新虚拟列”,以便查询现在可以访问它?真的很感谢你们,在那种情况下我整天都迷失了!谢谢!
    • 不是真正的虚拟列,而只是 sql 中的标准功能。既然你在做天的差异,为什么不在单个查询中做呢?当然你可以像使用 Laravel 的 mutators 那样做,但这对于这个简单的查询来说有点过分了
    • 知道了!再次感谢你,这对我的项目真的很有帮助
    • 有没有机会在这个查询中使用 where 子句?尝试随意的方式,但 expires_in 列不存在
    猜你喜欢
    • 2020-03-22
    • 2017-03-27
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多