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

Laravel中使用Carbon生成过去30天日期数组的实现方法求助

嘿,这个需求用Carbon来实现简直手到擒来!我给你两种实用的写法,看哪种更匹配你的预期:

方式一:循环生成(直观易懂)

如果你的目标是获取过去30天每天的日期日份(比如今天是20号,数组就是[19,18,17,...]这样的序列),可以用循环配合Carbon的日期操作:

// 初始化空数组
$past30Days = [];
// 获取当前日期
$today = \Carbon\Carbon::now();

// 循环30次,每次往前推1天
for ($i = 1; $i <= 30; $i++) {
    // 注意用copy()避免修改原Carbon实例
    $pastDate = $today->copy()->subDays($i);
    // 提取日期的日部分,加入数组
    $past30Days[] = $pastDate->day;
}

// 此时$past30Days就是你要的[19,18,17,...]这样的数组

方式二:Laravel集合写法(更优雅)

如果你习惯用Laravel的集合操作,一行代码就能搞定:

$past30Days = collect(range(1, 30))->map(function ($dayOffset) {
    return \Carbon\Carbon::now()->subDays($dayOffset)->day;
})->toArray();

额外说明

  • 如果你需要的不是日份,而是完整的日期字符串(比如'2024-05-19'),只需要把->day改成->format('Y-m-d')即可。
  • 要是你想要的是“距离今天的天数倒序”(比如30,29,...,1),那更简单:$days = range(30, 1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:14:13