PHP中如何计算从今日算起的下一月及下一季度的第一天
如需计算从今日起的下一个月的第一天,可参考如下PHP代码:
$firstDayNextMonth = date('Y-m-d', strtotime('first day of next month'));
如果需要计算从今日起的下一个季度的第一天,首先明确通用季度划分规则如下:
- 第一季度 Q1:1月1日 – 3月31日
- 第二季度 Q2:4月1日 – 6月30日
- 第三季度 Q3:7月1日 – 9月30日
- 第四季度 Q4:10月1日 – 12月31日
你可以使用以下两种方案实现:
方案1:简洁单行写法(推荐,PHP 5.3+ 支持)
直接利用PHP strtotime 原生支持的季度时间描述,先取当前季度最后一天再加1天,自动处理跨年逻辑:
$firstDayNextQuarter = date('Y-m-d', strtotime('last day of this quarter +1 day'));
方案2:分步逻辑实现(兼容性更好,便于自定义调整规则)
如果需要适配更低版本PHP,或者后续要修改季度划分规则,可以手动计算参数:
// 获取当前年份、月份 $currentYear = (int)date('Y'); $currentMonth = (int)date('n'); // 计算当前季度 $currentQuarter = ceil($currentMonth / 3); // 计算下一季度的年份和起始月份 if ($currentQuarter === 4) { $nextQuarterYear = $currentYear + 1; $nextQuarterStartMonth = 1; } else { $nextQuarterYear = $currentYear; $nextQuarterStartMonth = $currentQuarter * 3 + 1; } // 格式化得到下一季度第一天日期 $firstDayNextQuarter = date('Y-m-d', mktime(0, 0, 0, $nextQuarterStartMonth, 1, $nextQuarterYear));
内容的提问来源于stack exchange,提问作者user1177437
相关产品推荐
相关产品推荐

