【问题标题】:Get an array of dates using Carbon in Laravel 5.4在 Laravel 5.4 中使用 Carbon 获取日期数组
【发布时间】:2017-08-30 19:13:53
【问题描述】:

我是 Laravel/PHP 的初学者,我正在使用 Carbon 类来管理日期。 我需要按月获取日期时间数组,从上年年初到本月,输出应如下:

$dates = [
    '2016-01-01 00:00:00',
    '2016-02-01 00:00:00',
    '2016-03-01 00:00:00',
    '2016-04-01 00:00:00',
    '2016-05-01 00:00:00',
    '2016-06-01 00:00:00',
    '2016-07-01 00:00:00',
    '2016-08-01 00:00:00',
    '2016-09-01 00:00:00',
    '2016-10-01 00:00:00',
    '2016-11-01 00:00:00',
    '2016-12-01 00:00:00',
    '2017-01-01 00:00:00',
    '2017-02-01 00:00:00',
    '2017-03-01 00:00:00',
    '2017-04-01 00:00:00',
    '2017-05-01 00:00:00',
    '2017-06-01 00:00:00',
    '2017-07-01 00:00:00',
    '2017-08-01 00:00:00',
];

我不知道该怎么做,提前谢谢你。

【问题讨论】:

  • 您是否已经有了日期并且必须订购它们,或者您要在几年内的每个月初生成日期(作为@Arthur Samarcos 的答案)?
  • 我需要生成日期数组,从上一年开始(所以如果我们在 2020 年,上一年应该是 2019 年)到当前月份,所以最后一个日期应该是 @ 987654322@.

标签: php laravel laravel-5 php-carbon


【解决方案1】:

可能是这样的:

function dates()
{
    $start = \Carbon\Carbon::now()->subYear()->startOfYear();
    $months_to_render = \Carbon\Carbon::now()->diffInMonths($start);

    $dates = [];

    for ($i = 0; $i <= $months_to_render; $i++) {
        $dates[] = $start->toDateTimeString();
        $start->addMonth();
    }

    return $dates;
}

【讨论】:

  • 非常感谢您的帮助,但日期应停止在当前月份,在本例中为 august 2017
  • 抱歉,没有看到这个要求。 @dwix
  • 谢谢,它正在工作,但它从 2016-02-01 而不是 2016-01-01 开始。
猜你喜欢
  • 2015-09-28
  • 1970-01-01
  • 2018-02-03
  • 2020-01-28
  • 2017-07-06
  • 2018-07-04
  • 1970-01-01
  • 2019-11-06
  • 2016-02-28
相关资源
最近更新 更多