如何将 laravel中的日期格式从"2016-03-12"更改为"12-Mar-2016"
$results = DB::table('customers as cust')
->where('cust.id',$id)
->select("cust.*","cust.cust_dob as dob")
->first();
我应该使用拉拉维尔原始查询吗?
我试过了,
->select("cust.*","DATE_FORMAT(cust.cust_dob, '%d-%M-%Y') as formatted_dob")
请对此进行任何指导。
尝试使用这个:
$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();
> 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');
由于除了使用原始查询之外没有办法,所以我这样使用。它对我有用。
->select("cust.*", DB::raw("DATE_FORMAT(cust.cust_dob, '%d-%b-%Y') as formatted_dob"))
您可以随时使用 Carbon ->format('m/d/Y');
来更改格式。
或者,您可以只使用selectRaw
来构建查询。
此外,您可以尝试通过设置要使用的日期格式来$dateFormat
日期更改器:https://laravel.com/docs/5.1/eloquent-mutators#date-mutators
>Laravel提供了一个定义访问器/突变器的机会。在这种情况下,您可以使用它,而不是通过查询来执行此操作。
我会在客户模型类中添加方法
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