碳正在错误的约会? Laravel 5.6

时间:2018-05-30 06:36:52

标签: php datetime php-carbon laravel-5.6

我在面对一个非常奇怪的问题时,我正试图得到这样一个具体日期:

    $now = Carbon::now()->setTimezone('America/Costa_Rica');

    $currentYear = $now->copy()->year;

    $febmon = $now->copy()->month(2)->startOfMonth();
    dd($febmon);

它应该返回:2018-02-01 00:00:00.0 America/Costa_Rica (-06:00)

但相反,我得到了这个:2018-03-01 00:00:00.0 America/Costa_Rica (-06:00)

我已经尝试了所有其他月份的数字,并且工作完美但是2月......不知道出了什么问题。提前致谢

1 个答案:

答案 0 :(得分:1)

好的,我发现了这个问题,我的错误,但如果有人面临这个简单但奇怪的问题:

我根据now()确定日期,并在设置month(2)之前设置startOfMonth()

因为今天是30岁,所以它会在2月份传递到下个月,也就是2月份的3月没有30天,我所要做的就是先设置startOfMonth()。 ..所以它需要正确的约会。

这是正确的方法:

$now = Carbon::now()->setTimezone('America/Costa_Rica');

$febmon = $now->copy()->startOfMonth()->month(2); //Specify the month at last, and set the startOfMonth() first.
dd($febmon);