首页 > 解决方案 > 如何从 Laravel 集合中获取最小日期

问题描述

我有收藏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>';
}

因为促销有很多例外,所以我需要知道每个促销的最小日期和最大日期。

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

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

标签: phplaraveldateminphp-carbon

解决方案


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

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

推荐阅读