Laravel如何更改列表中的日期格式

Posted

技术标签:

【中文标题】Laravel如何更改列表中的日期格式【英文标题】:Laravel how to change date format in the list 【发布时间】:2015-01-06 16:45:54 【问题描述】:

我们正在从有日期的数据库中检索列表。我们希望以不同的格式显示它。假设是 2014 年 11 月 10 日。

这是我的代码

Trail1:

$dropDown = Events::lists(DATE_FORMAT(event_date,'%d %M, %Y'), 'id');

路径 2:

$dropDown = Events::lists("DATE_FORMAT(event_date, '%Y-%m-%d')  AS event_date", 'id')

但它会引发错误。有什么方法可以用来在 Laravel 中获取所需的日期格式?

普通查询:

select id, DATE_FORMAT(event_date,'%d %M, %Y') AS event_date from events

【问题讨论】:

使用未定义的常量 event_date - 假定为 'event_date' 我只是猜测,但你可以试试Events::lists(DB::raw("DATE_FORMAT..."), 'id'); @lukasgeiter 试过了,但没有成功 @vvr 您是否尝试过使用或不使用`AS event_date`? @lukasgeiter 尝试了两种方式 【参考方案1】:

这应该可行。

Events::lists(DB::raw('DATE_FORMAT(event_date, "%d %M, %Y")'), 'id');

在您在问题中发布的代码(以及 cmets)中,总是有一个小错误。

    DATE_FORMAT 是 SQL 函数而不是 php 函数 您必须使用DB::raw 才能使用 SQL 函数 DB::raw 需要一个字符串

【讨论】:

查询打印如下:select DATE_FORMAT(event_date, "%d %M, %Y"), id from events 有什么方法可以添加为 event_date 或类似的东西 @vvr 使用lists 时没有多大意义,因为返回值是一个数组,其id 和值为[1 => "10 November, 2014"

以上是关于Laravel如何更改列表中的日期格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将Laravel输出的日期格式更改为JSON?

在 Laravel 迁移中更改日期格式

Laravel 在 where 子句中更改日期格式以匹配 Carbon::now()

更改默认日期格式 laravel sql 查询

如何更改excel中的默认日期格式

如何将 Laravel 输出的日期格式更改为 JSON?