如何使用laravel查询构建器从trades.tradedate
:"2018-08-14 06:48:24"
中提取或仅使用时间。
输出应为:
06:48:24
我的功能:
public function boot()
{
Schema::defaultStringLength(191);
view()->composer('layouts.member', function ($view) {
$user = optional(Auth::user())->id;
$value = DB::table('exchanges')
->leftJoin('trades', 'exchanges.id', '=', 'trades.exchange_id')
->where('trades.user_id', $user)
->whereRaw("? NOT BETWEEN start_time AND close_time", 'trades.tradedate')
OR ->where('trade_date','>=', 'exchanges.close_time')->where('trade_date', '<=', 'exchanges.start_time')
->get();
$view->with('value', $value);
});
}
答案 0 :(得分:2)
我不确定,但是您可以尝试执行以下操作:
public function boot()
{
Schema::defaultStringLength(191);
view()->composer('layouts.member', function ($view) {
$user = optional(Auth::user())->id;
$value = DB::table('exchanges')
->leftJoin('trades', 'exchanges.id', '=', 'trades.exchange_id')
->where('trades.user_id', $user)
->select(DB::raw('TIME(trades.tradedate) AS trade_date'))
->whereRaw("? NOT BETWEEN start_time AND close_time", 'trade_date')
->get();
$view->with('value', $value);
});
}
答案 1 :(得分:1)
您可以使用Carbon进行解析并从日期获取时间。
要从模型中获取时间,可以向模型添加方法:
public function getTime ()
{
return \Carbon\Carbon::parse($this->my_date)->toTimeString();
}
或者您可以为模型添加访问器(属性的getter):
public function getMyDateAttribute($date)
{
return \Carbon\Carbon::parse($date)->toTimeString();
}