php -a Interactive shell php > echo date("Y-m-01", strtotime("2025-03-31 +1 month")); 2025-05-01 php >
$next_month = date("Y-m-01", strtotime("first day of next month")); // 或 $next_month = date("Y-m-01", strtotime("+1 month first day of this month"));
// 在2025-03-31运行时: echo date("Y-m-d", strtotime("+1 month")); // 输出 2025-05-01 echo date("Y-m-d", strtotime("last day of next month")); // 输出 2025-04-30 echo date("Y-m-d", strtotime("first day of next month")); // 输出 2025-04-01
echo date("Y-m-d", strtotime("last day of next month")); // 输出 2025-04-30
以下是一个 PHP 函数,它可以安全的,根据传入的日期部分格式返回该月份的最后一天:
<?php function getLastDayOfMonth($partialDate) { // 检查传入的日期格式是否符合要求(YYYY-MM) if (!preg_match('/^\d{4}-\d{2}$/', $partialDate)) { throw new InvalidArgumentException('日期格式不正确,请使用YYYY-MM格式'); } // 将部分日期补全为当月的第一天 $firstDayOfMonth = $partialDate . '-01'; // 创建DateTime对象 $date = new DateTime($firstDayOfMonth); // 将日期设置为下个月的第一天 $date->modify('first day of next month'); // 然后减去一天,得到当前月的最后一天 $date->modify('-1 day'); // 返回格式化的日期字符串(YYYY-MM-DD) return $date->format('Y-m-d'); } // 示例用法 echo getLastDayOfMonth('2025-06'); // 输出: 2025-06-30 echo getLastDayOfMonth('2025-02'); // 输出: 2025-02-28 echo getLastDayOfMonth('2024-02'); // 输出: 2024-02-29(闰年)