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 ; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具