如何将laravel Query Builder中的日期格式从“2016-03-12”更改为“2016年3月12日”

时间:2016-03-10 06:58:47

标签: php laravel laravel-5 laravel-query-builder

如何将laravel中的日期格式从“2016-03-12”更改为“2016年3月12日”

$results = DB::table('customers as cust')
        ->where('cust.id',$id)
        ->select("cust.*","cust.cust_dob as dob")
        ->first();

我应该使用laravel raw查询。

我试过了,

 ->select("cust.*","DATE_FORMAT(cust.cust_dob, '%d-%M-%Y') as formatted_dob")

有关此的任何指南。

5 个答案:

答案 0 :(得分:11)

尝试使用它:

$results = DB::table('customers as cust')
             ->where('cust.id',$id)
             ->select(DB::raw('DATE_FORMAT(cust.cust_dob, "%d-%b-%Y") as formatted_dob')
             ->first();

答案 1 :(得分:4)

Laravel使用Carbon作为日期时间,因此您可以像下面的代码一样编写它:

$results = DB::table('customers as cust')
            ->where('cust.id',$id)
            ->select("cust.*","cust.cust_dob as dob")
            ->first();
echo $results->dob->format('d-m-Y');

答案 2 :(得分:2)

除了使用原始查询之外没有办法,我这样使用。它对我有用。

->select("cust.*", DB::raw("DATE_FORMAT(cust.cust_dob, '%d-%b-%Y') as formatted_dob"))

答案 3 :(得分:0)

您可以随时使用Carbon的->format('m/d/Y');来更改格式。

或者您可以使用selectRaw来构建查询。

此外,您可以尝试使用日期变更器,将$dateFormat设置为您要使用的日期格式: https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

答案 4 :(得分:0)

Laravel提供了定义访问者/变异者的机会。您可以在这种情况下使用它而不是通过查询来执行此操作。

我会在Customer模型类中添加方法

public function getCustDobAttribute($value) {
    return //Format the value Which represent the value in database;
}

示例: 想象一下,您想要检索客户名称,您希望将其作为第一个租船人资本,其余为小。

public function getFirstNameAttribute($value)
{
    return ucfirst($value);
}

参考:

  

https://laravel.com/docs/5.1/eloquent-mutators#accessors-and-mutators