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 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3

也可以这样:

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

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

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

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

4年前 评论

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

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

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