如何从 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'作为字符串而不是日期,结果无效。
如何从集合中获取最小日期和最大日期。
【问题讨论】:
start
和 end
存储为什么数据类型?
从数据库中获取您的开始日期和结束日期列并使用它来解析它。 date('D M, Y', strtotime())
您是否将日期定义为日期?检查date mutators
【参考方案1】:
理想情况下,最好为每个开始和结束设置一个 DATETIME 字段,而不是将日期和时间分开(这可能会导致错误)。但如果你真的想要分离:
确保start
和end
在数据库中存储为日期,然后指定here等属性
如果不是,请确保在存储值时将start
& end
的格式转换为“YYYY-MM-DD”
【讨论】:
是的开始和结束存储为日期以上是关于如何从 Laravel 集合中获取最小日期的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 laravel 和 mysql 数据库获取数组中的数组?
如何从 laravel 的 eloquent 集合中获取外键