如何使用 Carbon 获取上个月的第一天和最后一天 - Laravel

新手上路,请多包涵

我需要使用碳库的 上个月第一 天和最后一天,我尝试过的内容如下:

 $firstDayofPreviousMonth = Carbon::now()->startOfMonth()->subMonth()->toDateString();
$lastDayofPreviousMonth = Carbon::now()->endOfMonth()->subMonth()->toDateString();

我得到的结果是 $firstDayofPreviousMonth = '2016-04-01' (因为当前月份是 5 日(5 月))和 $lastDayofPreviousMonth = '2016-05-01'

我得到了 $firstDayofPreviousMonth 的正确结果,但它给了我 30 天前的结果,并给了我错误的结果 $lastDayofPreviousMonth

谁能帮我解决这个问题?

原文由 Siddharth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

尝试这个:

 $start = new Carbon('first day of last month');
$end = new Carbon('last day of last month');

原文由 Deniz B. 发布,翻译遵循 CC BY-SA 3.0 许可协议

另一种解决方案是使用 Carbon 方法 subMonthNoOverflow()

 $lastDayofPreviousMonth = Carbon::now()->subMonthNoOverflow()->endOfMonth()->toDateString();

遇到每月 31 天的问题时在这里找到它: https ://github.com/briannesbitt/Carbon/issues/627

原文由 elena 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏