代码之家  ›  专栏  ›  技术社区  ›  GRESPL Nagpur

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

  •  12
  • GRESPL Nagpur  · 技术社区  · 9 年前

    如何将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原始查询吗。

    我试过了,

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

    有关于这个的指南吗。

    5 回复  |  直到 9 年前
        1
  •  30
  •   Rohit Suthar    4 年前

    尝试使用以下方法:

    $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();
    
        2
  •  8
  •   Zamrony P. Juhara    9 年前

    Laravel使用 Carbon 用于datetime,所以您可以像下面的代码那样编写它:

    $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');
    
        3
  •  7
  •   GRESPL Nagpur    9 年前

    由于除了使用原始查询之外没有其他方法,所以我这样使用。这对我有用。

    ->select("cust.*", DB::raw("DATE_FORMAT(cust.cust_dob, '%d-%b-%Y') as formatted_dob"))
    
        4
  •  0
  •   Alexey Mezenin    9 年前

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

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

    此外,您可以通过设置 $dateFormat 要使用的最新格式: https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

        5
  •  0
  •   devnull    9 年前

    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