当前位置: 首页 > news >正文

Carbon:PHP 开发者的日期时间工具箱

文章目录

  • Carbon:PHP 开发者的日期时间工具箱

Carbon:PHP 开发者的日期时间工具箱

PHP 原生的 DateTime 类用起来总有些别扭,日期计算、格式转换、多语言支持每一项都要手动处理。Carbon 就是为了解决这些问题而生的。

Carbon 是一个基于 PHP DateTime 的扩展库,目前在 GitHub 上获得了 16,616 个 Star。它在原生 DateTime 的基础上,提供了更简洁的 API 来完成日期的创建、解析、计算和格式化。

用 Composer 安装一行命令搞定:

composer require nesbot/carbon

安装完成后,代码里直接引入就能用。几个常见的使用场景:

useCarbon\Carbon;// 获取当前时间echoCarbon::now()->toDateTimeString();// 日期加减$tomorrow=Carbon::now()->addDay();$lastWeek=Carbon::now()->subWeek();// 计算年龄$age=Carbon::createFromDate(1975,5,21)->age;// 判断是否周末if(Carbon::now()->isWeekend()){echo'今天休息';}

API 的设计思路很清晰,方法名就是自然语言的表达,读代码和读句子差不多。

Carbon 内置了 200 多种语言的支持,包括 500 多种地区变体。一行代码就能切换显示语言:

echoCarbon::now()->subMinutes(2)->diffForHumans();// '2 minutes ago'echoCarbon::now()->subMinutes(2)->locale('zh_CN')->diffForHumans();// '2分钟前'echoCarbon::parse('2019-07-23 14:51')->isoFormat('LLLL');// 'Tuesday, July 23, 2019 2:51 PM'

对于需要国际化展示时间的项目,这个功能省去了大量手动翻译的工作。

测试方面,Carbon 提供了 setTestNow 方法来模拟固定时间点,方便单元测试中控制日期相关的逻辑:

Carbon::setTestNow(Carbon::createFromDate(2000,1,1));// 后续所有 Carbon::now() 都返回 2000-01-01// 测试完毕后恢复Carbon::setTestNow();

这个设计避免了测试中因为系统时间变化导致的不确定性。

日期差值计算也是常用功能,Carbon 支持天、小时、分钟等多个维度的精确计算:

$daysSinceEpoch=Carbon::createFromTimestamp(0)->diffInDays();

Carbon 目前正从 briannesbitt/Carbon 迁移到 CarbonPHP/carbon 仓库,代码在两个仓库保持同步更新,使用上没有影响。

项目文档完整,社区活跃,贡献者和翻译者都在持续维护。如果你的 PHP 项目里还在用原生 DateTime 手动拼日期逻辑,可以试试 Carbon。

档完整,社区活跃,贡献者和翻译者都在持续维护。如果你的 PHP 项目里还在用原生 DateTime 手动拼日期逻辑,可以试试 Carbon。

http://www.jsqmd.com/news/1065530/

相关文章:

  • HunterPie:为《怪物猎人:世界》量身打造的游戏数据可视化神器
  • 2026年专业的龙港手提袋台版印刷/服装台版印刷/龙港涤纶布台版印刷/箱包台版印刷长期合作厂家推荐 - 行业平台推荐
  • (2026最新)承德防水补漏正规公司甄选推荐:漏水检测维修-暗管漏水精准定位检测漏水点-卫生间/厨房/屋顶/阳台/渗漏水维修-本地人必选的正规测漏公司 - 即刻修防水
  • MiniCPM-o 4.5:端侧全双工全模态AI的工程落地实践
  • 逻辑越权漏洞深度解析:从原理到实战挖掘与防御
  • AI编程助手在APP逆向与电子取证中的实战应用
  • 2026年比较好的平阳天地盖包装礼盒/虫草包装礼盒/平阳保健品包装礼盒高口碑品牌推荐 - 品牌宣传支持者
  • LlamaIndex RAG工程化:五层数据流水线与生产级专利知识库实战
  • 5分钟掌握Mermaid Live Editor:让图表创作变得像写代码一样简单
  • 腾讯混元MT1.5:1GB内存实现端侧离线翻译的工程实践
  • 2026年靠谱的平阳高档亚克力罐/亚克力罐定制/平阳广口亚克力罐/分装亚克力罐深度厂家推荐 - 行业平台推荐
  • 一键将B站视频转为文字稿:智能语音识别工具完全指南
  • Selenium Grid节点浏览器标识配置详解:解决自动化测试集群资源错配
  • 基于飞艇空基中枢的全域态势透明化、集群行为量化研判、自主组网自愈协同演训系统
  • (2026最新)成都防水补漏正规公司甄选推荐:漏水检测维修-暗管漏水精准定位检测漏水点-卫生间/厨房/屋顶/阳台/渗漏水维修-本地人必选的正规测漏公司 - 即刻修防水
  • WebPlotDigitizer:5分钟从图表图像中智能提取数据的完整指南
  • Cypress移动端响应式自动化测试:从原理到实战的完整解决方案
  • Java Stream 流式操作的性能优化
  • 逆向分析SM4加密接口:从抓包到Python解密实战
  • (2026最新)怀化防水补漏正规公司甄选推荐:漏水检测维修-暗管漏水精准定位检测漏水点-卫生间/厨房/屋顶/阳台/渗漏水维修-本地人必选的正规测漏公司 - 即刻修防水
  • 影刀RPA综合实战项目:企业办公自动化一站式解决方案
  • 2026年诚信的保健品胶囊瓶/平阳彩色胶囊瓶/平阳便携胶囊瓶/平阳分装胶囊瓶用户口碑推荐厂家 - 行业平台推荐
  • Switch手柄连接电脑终极指南:BetterJoy完整配置教程
  • 2026年知名的亚克力包装瓶/塑料包装瓶/平阳保健品包装瓶/平阳塑料包装瓶优质厂家推荐榜 - 品牌宣传支持者
  • 2026年诚信的真空压力浸渍设备/真空设备用户口碑推荐厂家 - 品牌宣传支持者
  • 终极指南:如何用Visual C++ Redistributable AIO一键解决Windows程序运行难题
  • Crypto++文件加密实践:AES-CBC流式处理与安全存储方案
  • Go语言的sync.Map加载删除
  • 相互关系图管理化技术关联强度与方向
  • 嵌入式AI实战:资源受限下的模型部署与硬件协同