Api接口实战:Carbon类获取上月第一天和最后一天

Carbon获取指定月份

tips1:本月第一天和本月最一天

    Carbon::now()->startOfMonth()->toDateTimeString();
    Carbon::now()->endOfMonth()->toDateTimeString();

tips2:上个月第一天

    // 方法1
    $firstOfMonth = new Carbon('first day of last month');
    $firstOfMonth->startOfMonth()->toDateTimeString();
    // 方法2
    Carbon::now()->startOfMonth()->subMonth()->toDateTimeString();
    // 方法3
    Carbon::now()->subMonthWithoutOverflow()->startOfMonth()->toDateTimeString();

tips3:上个月最后一天

    // 方法1
    $lastOfMonth = new Carbon('last day of last month');
    $lastOfMonth->endOfMonth()->toDateTimeString();
    // 方法2  
    Carbon::now()->startOfMonth()->subMonth()->endOfMonth()->toDateTimeString();
    // 方法3
    Carbon::now()->subMonthWithoutOverflow()->endOfMonth()->toDateTimeString();

tips4:判断指定时间是否在本月内

    Carbon::parse($timestamp)->isCurrentMonth()

tips5:判断指定时间是否在上个月内

    Carbon::parse($timestamp)->isLastMonth()
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

也可以这样:

// 上月第一天
Carbon::now()->startOfMonth()->subMonth()->toDateTimeString();
// 上月最后一天
Carbon::now()->startOfMonth()->subMonth()->endOfMonth()->toDateTimeString();

但是不能将startOfMonth放到subMonth后面,原因见:github.com/briannesbitt/Carbon/iss...

3年前 评论
lyfireworks07 3年前
LuminEe 3年前
诺大的院子 (作者) 3年前
PHPer技术栈 (楼主) 3年前

上个月直接 today()->subMonth()

3年前 评论

WARN:这里面有坑,在获取上月第一天..可测试在3月29日获取上月第一天,结果是3月1日,并不是2月1日

3年前 评论
JerryBool 3年前
PHPer技术栈 (楼主) 3年前
BlackSky (作者) 3年前
PHPer技术栈 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!