PHP获取一些常用时间区间(本周、本月、本季度、今年,上周、上月、上季度、去年)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
     * @notes: 获取快捷时间
     * @return array
     * @author: lavender
     * @time: 2024/7/23 15:36
     */
    public function getShortcutsTimeArea()
    {
        $arr      = [];
        $timezone = new \DateTimeZone('PRC');
        $datetime = new \DateTime();
        $datetime->setTimezone($timezone);
        $month  = get_now_date('n');
        $season = (int)($month / 3);
        if ($month % 3 > 0) {
            $season += 1;
        }
        // 本周
        $datetime->modify('Monday this week');
        $start_time1 = $datetime->format('Y-m-d');
        $datetime->modify('Sunday this week');
        $end_time1        = $datetime->format('Y-m-d');
        $arr['this_week'] = $start_time1 . ' ~ ' . $end_time1;
        // 本月
        $datetime->modify('first day of this month');
        $start_time2 = $datetime->format('Y-m-d');
        $datetime->modify('last day of this month');
        $end_time2         = $datetime->format('Y-m-d');
        $arr['this_month'] = $start_time2 . ' ~ ' . $end_time2;
        // 本季度
        if ($season === 1) {
            $arr['this_quarter'] = get_now_date('Y-01-01') . ' ~ ' . get_now_date('Y-03-31');
        } else if ($season === 2) {
            $arr['this_quarter'] = get_now_date('Y-04-01') . ' ~ ' . get_now_date('Y-06-30');
        } else if ($season === 3) {
            $arr['this_quarter'] = get_now_date('Y-07-01') . ' ~ ' . get_now_date('Y-09-30');
        } else {
            $arr['this_quarter'] = get_now_date('Y-10-01') . ' ~ ' . get_now_date('Y-12-31');
        }
        // 今年
        $datetime->modify('first day of january this year');
        $start_time4 = $datetime->format('Y-m-d');
        $datetime->modify('last day of december this year');
        $end_time4        = $datetime->format('Y-m-d');
        $arr['this_year'] = $start_time4 . ' ~ ' . $end_time4;
        // 上周
        $timezone = new \DateTimeZone('PRC');
        $datetime = new \DateTime();
        $datetime->setTimezone($timezone);
        $datetime->modify('Monday last week');
        $start_time5 = $datetime->format('Y-m-d');
        $datetime->modify('Sunday this week');
        $end_time5        = $datetime->format('Y-m-d');
        $arr['last_week'] = $start_time5 . ' ~ ' . $end_time5;
        // 上月
        $timezone = new \DateTimeZone('PRC');
        $datetime = new \DateTime();
        $datetime->setTimezone($timezone);
        $datetime->modify('first day of last month');
        $start_time6 = $datetime->format('Y-m-d');
        $datetime->modify('last day of this month');
        $end_time6         = $datetime->format('Y-m-d');
        $arr['last_month'] = $start_time6 . ' ~ ' . $end_time6;
        // 上季度
        if ($season === 1) {
            $year                = intval(get_now_date('Y')) - 1;
            $arr['last_quarter'] = $year . '-10-01' . ' ~ ' . $year . '-12-31';
        } else if ($season === 2) {
            $arr['last_quarter'] = get_now_date('Y-01-01') . ' ~ ' . get_now_date('Y-03-31');
        } else if ($season === 3) {
            $arr['last_quarter'] = get_now_date('Y-04-01') . ' ~ ' . get_now_date('Y-06-30');
        } else {
            $arr['last_quarter'] = get_now_date('Y-07-01') . ' ~ ' . get_now_date('Y-09-30');
        }
        // 去年
        $timezone = new \DateTimeZone('PRC');
        $datetime = new \DateTime();
        $datetime->setTimezone($timezone);
        $datetime->modify('first day of january last year');
        $start_time8 = $datetime->format('Y-m-d');
        $datetime->modify('last day of december this year');
        $end_time8        = $datetime->format('Y-m-d');
        $arr['last_year'] = $start_time8 . ' ~ ' . $end_time8;
        return $arr;
    }

  

posted @   橙子与柠檬  阅读(203)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示