【问题标题】:Laravel: generate a list of month of a mysql date fieldLaravel:生成一个mysql日期字段的月份列表
【发布时间】:2015-12-12 18:39:53
【问题描述】:

我想用 Laravel/Eloquent 从 MySQL 表中的日期字段生成月份列表。

如何对查询进行分组并生成月份列表?

该列表用于选择字段,以便以后每月过滤条目。

id  user_id garage_id   date            time
1   1       23          2015-09-11      02:23:00
5   1       17          2015-09-07      03:36:00
6   1       136         2015-08-02      23:22:00
7   1       83          2015-08-13      14:56:00
8   1       3           2015-07-16      14:58:00
9   1       67          2015-07-09      10:51:00

谢谢 米尔科

【问题讨论】:

  • 你目前有什么代码?
  • 对不起,没什么,我的脑子冻僵了,我暂时没有解决问题的计划:/
  • 那么至少展示带有一些示例数据的表结构,以及预期结果数据结构的示例,因为到目前为止你的问题有点过于宽泛了。
  • 您应该先尝试:laravel.com/docs/5.1/eloquent 然后,如果您有任何疑问,我们很乐意为您提供帮助。
  • 有一些示例数据,我想要一个包含月份的列表:7 月、8 月、9 月

标签: date laravel eloquent


【解决方案1】:

您可以在 DB 查询中使用 groupBy(),这实际上为您提供了一个唯一值列表。

$unqiue_dates = DB::table('your_table')
    ->where('some_condition','=','if you like')
    ->groupBy('created_at') // or whatever date field
    ->get();

然后,一旦您将此数据传递到 Laravel 刀片模板,您就可以像这样遍历它们:

<select>
@foreach ($unique_dates as $date)
    <option>{{ date('F', strtotime($date)) }}</option>
@endforeach
<select>

使用 'F' 作为格式字符给出完整的文本表示,例如一月。

【讨论】:

    【解决方案2】:

    我在 Laravel 和 Eloquent 之外找到了解决方案:

    SELECT MONTHNAME(date) as month FROM cp_dbcarsharing GROUP BY MONTH(date)

    现在我根据我的情况调整它;)

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多