Laravel Carbon,用工作日检索今天的日期?
Laravel Carbon, retrieve today's date with weekday?
我正在使用 carbon 将 2 个日期与今天的日期进行比较,但是我在数据库中还有另一个名为 weekday 的字段,其中包含如下值:
'MO'
'TU'
'WE'
所以我不仅要按日期搜索和输出,还要按工作日搜索所以:
public function show($id)
{
$today = Carbon::now();
$weekday = //whatever carbon or something else has to retrieve today's day
$event = Event::with('businesses')
->where('startdate', '<', $today->format('Y-m-d'))
->where('endate', '>', $today->format('Y-m-d'))
//or where ('weekday') = $weekday?
->get();
return view('events.showEvent', compact('event'));
}
我不确定 Carbon 是否具有这样的格式,但您可以从日期映射中获取工作日和当前工作日常量:
$weekMap = [
0 => 'SU',
1 => 'MO',
2 => 'TU',
3 => 'WE',
4 => 'TH',
5 => 'FR',
6 => 'SA',
];
$dayOfTheWeek = Carbon::now()->dayOfWeek;
$weekday = $weekMap[$dayOfTheWeek];
如果您在英语语言环境中,您可以通过对 Carbon 的 l
格式进行一些处理来获得短的工作日格式,returns 工作日名称:
strtoupper(substr($today->format('l'), 0, 2)); // Returns 'MO', 'TU', etc
如果您可以访问 Carbon 2(2018-08-31 可用),它可以更短:
strtoupper($today->isoFormat('dd'));
$weekday = Carbon::parse($today)->format('1');
这很完美
Carbon::parse($invoice->date)->format('l d M Y');
我正在使用 carbon 将 2 个日期与今天的日期进行比较,但是我在数据库中还有另一个名为 weekday 的字段,其中包含如下值:
'MO' 'TU' 'WE'
所以我不仅要按日期搜索和输出,还要按工作日搜索所以:
public function show($id)
{
$today = Carbon::now();
$weekday = //whatever carbon or something else has to retrieve today's day
$event = Event::with('businesses')
->where('startdate', '<', $today->format('Y-m-d'))
->where('endate', '>', $today->format('Y-m-d'))
//or where ('weekday') = $weekday?
->get();
return view('events.showEvent', compact('event'));
}
我不确定 Carbon 是否具有这样的格式,但您可以从日期映射中获取工作日和当前工作日常量:
$weekMap = [
0 => 'SU',
1 => 'MO',
2 => 'TU',
3 => 'WE',
4 => 'TH',
5 => 'FR',
6 => 'SA',
];
$dayOfTheWeek = Carbon::now()->dayOfWeek;
$weekday = $weekMap[$dayOfTheWeek];
如果您在英语语言环境中,您可以通过对 Carbon 的 l
格式进行一些处理来获得短的工作日格式,returns 工作日名称:
strtoupper(substr($today->format('l'), 0, 2)); // Returns 'MO', 'TU', etc
如果您可以访问 Carbon 2(2018-08-31 可用),它可以更短:
strtoupper($today->isoFormat('dd'));
$weekday = Carbon::parse($today)->format('1');
这很完美
Carbon::parse($invoice->date)->format('l d M Y');