Laravel中七个非常有用但很少人知道的Carbon方法

发布时间 - 2026-01-11 03:21:29    点击率:

前言

大家应该都知道,我们在很多时候使用 Carbon 来处理日期和时间,对吗?但是又有多少人完整的阅读过文档了解它有那些方法呢?除了众所周知的 now() 和 format() 方法,Carbon 还有很多其他有用的方法。

下面我们一起来看看吧。

1. isX: True/False

有很多方法来判断 Carbon 对象是否是今天、周末、闰年等等,下面这些是官方文档列出来的:

<?php
$dt->isWeekday();
$dt->isWeekend();
$dt->isYesterday();
$dt->isToday();
$dt->isTomorrow();
$dt->isFuture();
$dt->isPast();
$dt->isLeapYear();
$dt->isSameDay(Carbon::now());

2. isBirthday

除了上面的列表,Carbon 还有一个方法来判断日期是否是某个人的生日。除了单开校验月和日外,你还可以这么做:

$born = Carbon::createFromDate(1987, 4, 23);
$noCake = Carbon::createFromDate(2014, 9, 26);
$yesCake = Carbon::createFromDate(2014, 4, 23);
var_dump($born->isBirthday($noCake));  // bool(false)
var_dump($born->isBirthday($yesCake));

3. StartOfX 和 EndOfX 列表

下面是 startOfX 系列和 endOfX 系列:

$dt = Carbon::create(2012, 1, 31, 12, 0, 0);
echo $dt->startOfDay(); // 2012-01-31 00:00:00
echo $dt->endOfDay(); // 2012-01-31 23:59:59
echo $dt->startOfMonth(); // 2012-01-01 00:00:00
echo $dt->endOfMonth(); // 2012-01-31 23:59:59
echo $dt->startOfYear(); // 2012-01-01 00:00:00
echo $dt->endOfYear(); // 2012-12-31 23:59:59
echo $dt->startOfDecade(); // 2010-01-01 00:00:00
echo $dt->endOfDecade(); // 2019-12-31 23:59:59
echo $dt->startOfCentury(); // 2000-01-01 00:00:00
echo $dt->endOfCentury(); // 2099-12-31 23:59:59
echo $dt->startOfWeek(); // 2012-01-30 00:00:00
echo $dt->endOfWeek(); // 2012-02-05 23:59:59

4. Today, Tomorrow, Yesterday

三个简单却非常有用的方法,不需要调用 now(),然后替换掉时分秒,然后增加或者减去天数:

$today = Carbon::today(); // assuming 2016-06-24
echo $today;        // 2016-06-24 00:00:00
$tomorrow = Carbon::tomorrow();
echo $tomorrow;       // 2016-06-25 00:00:00
$yesterday = Carbon::yesterday();
echo $yesterday;       // 2016-06-23 00:00:00

5. DiffForHumans + 本地化

你可能用过这个叫做 diffForHumans() 的方法 – 它会以一个便于人们阅读的方法返回两个日期之间的不同:

echo Carbon::now()->subDays(5)->diffForHumans(); // 5 days ago

但是你知道它也可以本地化吗?只需要改变地点即可,如汉语:

Carbon::setLocale('zh');
echo Carbon::now()->addYear()->diffForHumans(); // 一年前

6. 改变 now() 为任意你想要的时间

$knownDate = Carbon::create(2001, 5, 21, 12); // 创建测试日期
Carbon::setTestNow($knownDate);      // set the mock 
echo Carbon::now();         // 2001-05-21 12:00:00

7. 星期常量

可以通过下面的常量来代替一周中的第几天:

var_dump(Carbon::SUNDAY);       // int(0)
var_dump(Carbon::MONDAY);       // int(1)
var_dump(Carbon::TUESDAY);       // int(2)
var_dump(Carbon::WEDNESDAY);      // int(3)
var_dump(Carbon::THURSDAY);      // int(4)
var_dump(Carbon::FRIDAY);       // int(5)
var_dump(Carbon::SATURDAY);      // int(6)

上面提到的这些有用的方法你都了解吗?可以在留言种列出你觉得有用的方法。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# laravel  # carbon用法  # carbon  # 公共方法  # 详解PHP使用日期时间处理器Carbon人性化显示时间  # PHP中的日期时间处理利器实例(Carbon)  # Laravel中日期时间处理包Carbon的简单使用  # 方法来  # 文档  # 不需要  # 有很多  # 几天  # 又有  # 你知道  # 你还  # 可以通过  # 还有一个  # 只需要  # 你都  # 用过  # 你觉得  # 这么做  # 这篇文章  # 谢谢大家  # 我们一起  # 它也  # 还有很多 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Python高阶函数应用_函数作为参数说明【指导】  使用C语言编写圣诞表白程序  EditPlus中的正则表达式 实战(4)  Laravel如何创建自定义Artisan命令?(代码示例)  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  Linux后台任务运行方法_nohup与&使用技巧【技巧】  PHP 500报错的快速解决方法  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何挑选最适合建站的高性能VPS主机?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Bootstrap CSS布局之列表  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel怎么使用Intervention Image库处理图片上传和缩放  Android GridView 滑动条设置一直显示状态(推荐)  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  如何在云主机上快速搭建网站?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel怎么实现模型属性的自动加密  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  如何在IIS管理器中快速创建并配置网站?  详解jQuery中的事件  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何打造高效商业网站?建站目的决定转化率  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  WordPress 子目录安装中正确处理脚本路径的完整指南  如何在腾讯云免费申请建站?  网站制作企业,网站的banner和导航栏是指什么?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  怎么用AI帮你设计一套个性化的手机App图标?  实例解析angularjs的filter过滤器  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  js实现获取鼠标当前的位置  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  如何在VPS电脑上快速搭建网站?