我在面对一个非常奇怪的问题时,我正试图得到这样一个具体日期:
$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月......不知道出了什么问题。提前致谢
答案 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);