如何从 Laravel 集合中获取最小日期

Posted

技术标签:

【中文标题】如何从 Laravel 集合中获取最小日期【英文标题】:How to get min date from Laravel collection 【发布时间】:2019-10-30 23:52:45 【问题描述】:

我收藏了promotions,每次推广都有很多exceptions

foreach ($promotions as $p) 
    $t = $p->exceptions()
            ->where('sunday','on')
            ->whereDate('start','<=', $c_date)
            ->whereDate('end','>=', $c_date)
            ->get()
            ->sortBy('promotion_id');

    echo $t->min('start'). ' from: '.$t->min('start_time') .' ';
    echo $t->max('end') . ' to: '.$t->max('end_time').'</br>';

因为促销有很多例外情况,我需要知道每个促销的最短日期和最长日期。

上面的代码运行良好,但它使用'start'作为字符串而不是日期,结果无效。

如何从集合中获取最小日期和最大日期。

【问题讨论】:

startend 存储为什么数据类型? 从数据库中获取您的开始日期和结束日期列并使用它来解析它。 date('D M, Y', strtotime()) 您是否将日期定义为日期?检查date mutators 【参考方案1】:

理想情况下,最好为每个开始和结束设置一个 DATETIME 字段,而不是将日期和时间分开(这可能会导致错误)。但如果你真的想要分离:

确保startend在数据库中存储为日期,然后指定here等属性 如果不是,请确保在存储值时将start & end 的格式转换为“YYYY-MM-DD”

【讨论】:

是的开始和结束存储为日期

以上是关于如何从 Laravel 集合中获取最小日期的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 和 mysql 数据库获取数组中的数组?

如何从 laravel 的 eloquent 集合中获取外键

如何从 Laravel 日期范围内未创建的数据库中获取记录?

我无法从 laravel 中的输入值中获取请求值

如何从 laravel 中的集合中获取 ID?

获取Laravel中每个不同项目名称的最小值和最大值的集合项