如何使用碳来确定当前季度?即我希望得到季度开始时的日期和结束日期。
我尝试了一种不起作用的直观echo new Carbon('this quarter');
方式,但我猜他们没有一个季度的方式。
我想通了,我做了:
$query->where(DB::raw('QUARTER(FT.created_at)'), Carbon::now()->quarter);
$query->where(DB::raw('YEAR(FT.created_at)'), '=', Carbon::now()->year);
但现在我正在努力解决如何获得上一季度的开始和结束日期。
答案 0 :(得分:5)
您可以使用firstOfQuarter
和lastOfQuarter
方法确定一个季度的开始和结束日期......
$date = new \Carbon\Carbon('-3 months');
$firstOfQuarter = $date->firstOfQuarter();
$lastOfQuarter = $date->lastOfQuarter();
答案 1 :(得分:1)
我想我已经解决了它:
...
case 9:
$a = Carbon::now();
$a->month($a->month-3);
$lastQuarter = $a->quarter;
$query->where(DB::raw('QUARTER(FT.created_at)'), $lastQuarter);
$query->where(DB::raw('YEAR(FT.created_at)'), $a->year);
break;
...
如果有更好的方法,请让我知道更好的方法,非常感谢您的帮助。
答案 2 :(得分:0)
只需在上面的答案中添加更多内容,应使用的实际方法是以下方法:
$date = new \Carbon\Carbon('-3 months'); // for the last quarter requirement
$date->startOfQuarter(); // the actual start of quarter method
$date->endOfQuarter(); // the actual end of quarter method (with time 23:59:59.999999)
以下内容并非完全正确:
$date->firstOfQuarter(); /* use this method when you wish to get the first
occurrence of a given day in the current quarter, its
fallback works similar to the startOfQuarter() method */
$date->lastOfQuarter(); /* this is where the problem located, unlike the
endOfQuarter() method, this method return the start of a
day (with time 00:00:00.000000) (because the method is
designed to get the last occurrence of a given day in the
current quarter */
答案 3 :(得分:0)
**
$ yyyymm =当前日期(); $ date = new \ Carbon \ Carbon($ yyyymm);
$ ProfileData ['date_from'] = $ date-> firstOfQuarter()-> format('Ymd');
$ ProfileData ['date_to'] = $ date-> endOfQuarter()-> format('Ymd');
**