You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取当月截至当前日期的所有日期?PHP技术咨询

获取当月截至当前日期的日期列表解决方案

你的代码能生成指定月份的全部有效日期,但未限制到当前日期,只需添加截止日期的判断即可实现需求:

修改后的代码

$month = 12;
$year = 2022;

$currentYear = date('Y');
$currentMonth = date('m');
$currentDay = date('d');

// 获取指定月份的最后一天
$lastDayOfMonth = date('t', mktime(0, 0, 0, $month, 1, $year));
// 确定循环的截止日期:如果是当前年月则到今日,否则到当月最后一天
$endDay = ($year == $currentYear && $month == $currentMonth) ? $currentDay : $lastDayOfMonth;

$list = [];
for ($d = 1; $d <= $endDay; $d++) {
    $time = mktime(12, 0, 0, $month, $d, $year);
    // 过滤掉无效日期(如4月31日这类不存在的日期)
    if (date('m', $time) == $month) {
        $list[] = date('Y-m-d', $time);
    }
}

// 输出结果示例
print_r($list);

关键修改说明

  • 新增当前系统日期的获取,用于判断指定年月是否为当前月份
  • 通过date('t')获取指定月份的最后一天,避免硬编码31天的问题
  • 动态设置循环的截止日:当前月份则截止到今日,其他月份则截止到当月最后一天
  • 保留原代码的有效日期过滤逻辑,确保生成的日期都属于指定月份

内容的提问来源于stack exchange,提问作者Display

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:50:42