[英]Working with Carbon dates in Laravel 5
我想從數據庫中獲取在不同時間開始的任務。 即從今天開始,明天,下周和下個月。 我試圖在我的模型中編寫作用域來處理該問題,但我真的不知道該怎么做。
這是我的范圍方法
/**
* @param $query
* @return mixed
*/
public function scopeToday($query)
{
return $query->where('start_at','=', Carbon::now());
}
/**
* @param $query
* @return mixed
*/
public function scopeTomorrow($query)
{
return $query->where('start_at','=', Carbon::now()->addDay(1));
}
/**
* @param $query
* @return mixed
*/
public function scopeNextWeek($query)
{
return $query->whereRaw('start_at = ?', [Carbon::now()->addWeek()]);
}
/**
* @param $query
* @return mixed
*/
public function scopeNextMonth($query)
{
return $query->where('start_at','=', Carbon::now()->addMonth(1));
}
有人知道上面的方法為什么不起作用嗎?
注意:start_at已經是Carbon實例。
我猜你start_at
字段是datetime type
。 這可能會導致在比較日期時出現問題。
您只需要將datetime
轉換為date
並使用Carbon::today()
而不是Carbon::now()
。
public function scopeToday($query)
{
return $query->where( DB::raw('DATE(created_at)') ,'=', Carbon::today());
}
這表明Carbon::today()
和Carbon::now()
之間的區別
$now = Carbon::now();
echo $now; // 2015-03-26 00:36:47
$today = Carbon::today();
echo $today; // 2015-03-26 00:00:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.