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(闰年)