簡體   English   中英

使用laravel 5.2雄辯的查詢和Carbon獲取日期並轉換格式

[英]Fetch date and convert format using laravel 5.2 eloquent query & carbon

我有控制器代碼,該控制器代碼從表中獲取一些行並將其傳遞給視圖,以下是由代碼獲取的示例結果

在此處輸入圖片說明

在上面的圖像中,您可以檢查是否有show_date,格式為Ymd,現在我將其顯示為當前日期,但我想將此日期格式轉換為如下格式

 21 Sep 2016 ,Wed

我的控制器代碼是

 public function show($id)
{
    $cities=General_cities::pluck('city_name','city_id');
    $showtime=Movies_showtimes::with('showdata','movie','cinema')->where([['cinema_id','=',$id],['show_date','>=',Carbon::today()],])->orderBy('show_date', 'asc')->get();

    $cinemahall=Movies_cinemahall::where('cinema_id',$id)->get();
    return view('admin.viewshowtime',compact('cities','showtime','cinemahall'));
}

我有點困惑,我該如何批量更新雄辯對象的所有show_date,即應該在獲得雄辯對象之后執行,還是應該直接在db查詢中觸發,或者最好在View中隱蔽日期。

感謝幫助。

$dt = Carbon::today();
echo $dt->format('j F Y \\, l'); 

盡管有很多方法,但我認為使用Carbon的format()view進行處理是一個不錯的解決方案。 有關更多格式化方法,請參閱Carbon文檔

遍歷集合時,可以設置show_date格式如下:

$showTime->show_date->format('j M Y, D');

注意:要使其正常工作, show_date必須是Carbon的實例。 您可以通過將Eloquent添加到模型中來告訴Eloquent自動執行此操作。 它看起來像這樣:

/**
 * The attributes that should be mutated to dates.
 *
 * @var array
 */
protected $dates = ['created_at', 'updated_at', 'show_date'];

這是解決該問題的最終答案,這要歸功於@camelCase和@Borna找出解決方案。

我將Laravel 5.2訪問器用於此解決方案,請在此處查看https://laravel.com/docs/5.3/eloquent-mutators#defining-an-accessor

這是我在Model中編寫的訪問器代碼,該代碼可轉換雄辯的集合中獲取的dateformat。

 public function getShowdateAttribute($value)
{
    $carbon = new Carbon($value);
    return $carbon->format('j M Y, D'); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM