Carbon for PHP:完整指南与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Carbon,为什么需要它?



Carbon 是一个强大且优雅的 PHP 库,它扩展了内置的 DateTime 类。如果你曾经用原生 PHP 处理过日期,你会知道标准的 DateTime 和 DateTimeImmutable 提供了基本功能,但它们的 API 通常冗长且不直观。Carbon 通过提供干净、可读且富有表现力的语法来解决这个问题,用于处理日期和时间。



为什么要使用 Carbon?想象一下,你需要:

  • 在当前日期上增加 3 天:$date->add(new DateInterval('P3D'))(原生 PHP) vs $date->addDays(3)(Carbon)。
  • 获取两个日期之间的天数差:冗长的 DateTime::diff() 加上后续格式化 vs $date1->diffInDays($date2)。
  • 检查一个日期是否为周末:编写自己的逻辑 vs $date->isWeekend()。


Carbon 不仅使代码更短,而且更易于理解。它被广泛用于现代 PHP 框架中,例如 Laravel(它是其中的标准)、Symfony、Yii 等。该库与原生 DateTime 完全兼容,这意味着你可以在任何期望 DateTime 的地方使用 Carbon。



Carbon 的主要优势:

  • 富有表现力的语法:方法命名使其用途无需注释即可理解(startOfDay()、endOfMonth()、isFuture())。
  • 不可变性:支持 CarbonImmutable,用于安全地处理日期而不会产生副作用。
  • 本地化:内置支持不同语言的日期格式化。
  • 丰富的 API:数百种用于操作、比较、格式化和计算日期的方法。
  • 直观的比较:像 isBefore()、isAfter()、isSameDay() 这样的方法。


安装 Carbon



Carbon 通过 Composer 安装——PHP 的标准包管理器。如果你还没有 Composer,需要先安装它(参见 getcomposer.org)。



在项目根目录打开终端并执行命令:



composer require nesbot/carbon


成功安装后,你的项目中会出现 vendor/ 文件夹和包含已添加依赖的 composer.json 文件。要在代码中使用 Carbon,需要引入 Composer 的自动加载器:



<?phprequire_once 'vendor/autoload.php';

use Carbon\\Carbon;

// 现在可以使用 Carbonecho Carbon::now(); // 2025-04-03 15:30:00?>


重要提示: Carbon 需要 PHP 8.0 或更高版本(对于最新版本)。建议使用 PHP 8.1+。



快速入门与代码示例



让我们直接进入实践。以下是一些展示 Carbon 强大功能的简单示例:



<?phprequire_once 'vendor/autoload.php';use Carbon\\Carbon;

// 当前日期和时间$now = Carbon::now();echo "现在: " . $now . ""; // 2025-04-03 15:30:00

// 从字符串创建日期$birthday = Carbon::createFromDate(1990, 5, 15);echo "生日: " . $birthday->format('d.m.Y') . ""; // 15.05.1990

// 日期操作$tomorrow = Carbon::tomorrow();echo "明天: " . $tomorrow . "";

$nextWeek = Carbon::now()->addWeek();echo "一周后: " . $nextWeek . "";

// 日期之间的差异$age = $birthday->diffInYears(Carbon::now());echo "年龄: $age 岁"; // 34 或 35

// 条件检查$date = Carbon::parse('2025-12-25');if ($date->isChristmas()) { echo "这是圣诞节!";}

//

推荐