首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >碳排放每年的四分之一

碳排放每年的四分之一
EN

Stack Overflow用户
提问于 2021-12-08 04:22:24
回答 3查看 410关注 0票数 0

我想得到我的数据季度,所以每年我将有4个变量,如pastYearsQOne pastYearsQTwo pastYearsQThree pastYearsQFour

我的问题是,我怎么才能得到一年中的四分之一呢?

code

代码语言:javascript
运行
复制
$pastYearsQOne = Project::orderby('id', 'desc')->whereDate(
  'created_at', '<=', now()->subYear(1)->startOfQuarter()->toDateTimeString()
                                         ^^^^^^^^^^^^^^^^
)->count();

如果还没拿到的话!这是逻辑,

最终结果如下:

代码语言:javascript
运行
复制
$pastYearsQOne = data of: 2020 (year) -> 01~03 (months)

$pastYearsQTwo = data of: 2020 (year) -> 04~06 (months)

$pastYearsQThree = data of: 2020 (year) -> 07~09 (months)

$pastYearsQFour = data of: 2020 (year) -> 10~12 (months)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-08 04:57:33

startOfQuarterendOfQuarter四分之一以及month函数都很有用。

请尝试使用以下代码。

代码语言:javascript
运行
复制
$startOfQ1 = Carbon::now()->subYear()->month(1)->startOfQuarter();
$endOfQ1 = Carbon::now()->subYear()->month(1)->endOfQuarter();

$startOfQ2 = Carbon::now()->subYear()->month(4)->startOfQuarter();
$endOfQ2 = Carbon::now()->subYear()->month(4)->endOfQuarter();

$startOfQ3 = Carbon::now()->subYear()->month(7)->startOfQuarter();
$endOfQ3 = Carbon::now()->subYear()->month(7)->endOfQuarter();

$startOfQ4 = Carbon::now()->subYear()->month(10)->startOfQuarter();
$endOfQ4 = Carbon::now()->subYear()->month(10)->endOfQuarter();
票数 2
EN

Stack Overflow用户

发布于 2021-12-08 04:59:23

您可以为当前年度Carbon::today()添加一个变量,然后递归地为所有季度Carbon::addMonths(3)添加3个月。

票数 0
EN

Stack Overflow用户

发布于 2021-12-08 05:09:29

你是这个意思吗?

代码语言:javascript
运行
复制
public function index()
{
    $now = Carbon::now()->subYears(1)->format('Y-m-d H:i:s');

    $pastQuarterOneStart = Carbon::parse($now)->subQuarters(3)->startOfQuarter()->format('Y-m-d H:i:s'); // 2020-01-01 00:00:00
    $pastQuarterOneEnd = Carbon::parse($now)->subQuarters(3)->endOfQuarter()->format('Y-m-d H:i:s'); // 2020-03-31 23:59:59

    $pastQuarterTwoStart = Carbon::parse($now)->subQuarters(2)->startOfQuarter()->format('Y-m-d H:i:s'); // 2020-04-01 00:00:00
    $pastQuarterTwoEnd = Carbon::parse($now)->subQuarters(2)->endOfQuarter()->format('Y-m-d H:i:s'); // 2020-06-30 23:59:59

    $pastQuarterThreeStart = Carbon::parse($now)->subQuarter(1)->startOfQuarter()->format('Y-m-d H:i:s'); // 2020-07-01 00:00:00
    $pastQuarterThreeEnd = Carbon::parse($now)->subQuarter(1)->endOfQuarter()->format('Y-m-d H:i:s'); // 2020-09-30 23:59:59

    $pastQuarterFourStart = Carbon::parse($now)->startOfQuarter()->format('Y-m-d H:i:s'); // 2020-10-01 00:00:00
    $pastQuarterFourEnd = Carbon::parse($now)->endOfQuarter()->format('Y-m-d H:i:s'); // 2020-12-30 23:59:59


    // Get 2020-01-01 00:00:00 to 2020-03-31 23:59:59
    $pastYearsQOne = Project::orderby('id', 'desc')->whereBetween(
        'created_at',
        [
            $pastQuarterOneStart,
            $pastQuarterOneEnd
        ]
    )->count();

    // Get 2020-04-01 00:00:00 to 2020-06-31 23:59:59
    $pastYearsQTwo = Project::orderby('id', 'desc')->whereBetween(
        'created_at',
        [
            $pastQuarterTwoStart,
            $pastQuarterTwoEnd
        ]
    )->count();

    // Get 2020-07-01 00:00:00 to 2020-09-31 23:59:59
    $pastYearsQThree = Project::orderby('id', 'desc')->whereBetween(
        'created_at',
        [
            $pastQuarterThreeStart,
            $pastQuarterThreeEnd
        ]
    )->count();

    // Get 2020-10-01 00:00:00 to 2020-12-31 23:59:59
    $pastYearsQFour = Project::orderby('id', 'desc')->whereBetween(
        'created_at',
        [
            $pastQuarterFourStart,
            $pastQuarterFourEnd
        ]
    )->count();
}

在这里,我还根据要检索的数据更改查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70269921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档