Carbon 超强时间处理库
PHP 最强大的时间处理扩展包,完美支持日期差计算、年龄计算、倒计时、时区转换、时间格式化等所有时间场景
关于 Carbon
nesbot/carbon 是 PHP 最强大的时间处理扩展包,完美支持日期差计算、年龄计算、倒计时、时区转换、时间格式化等所有时间场景,是网站开发核心必备工具,可直接替代 PHP 原生 date 函数,中文友好,支持"几分钟前""几小时前""几天前"等人性化时间显示。
安装命令
composer require nesbot/carbon
日期差计算
精确计算两个日期之间的年、月、日、时、分、秒差距
年龄计算
自动计算周岁、虚岁,支持自定义基准日期
倒计时功能
实时计算距离目标时间的剩余天数和时间
时区转换
支持全球时区转换,自动处理夏令时
常用功能示例
日期差计算
计算两个日期之间的差距,精确到年、月、日、小时
$start = Carbon::parse('2024-01-01');
$end = Carbon::parse('2025-06-15');
$diff = $start->diff($end);
echo $diff->y . '年' . $diff->m . '月' . $diff->d . '日';
输出:1年5月14日
年龄计算
根据出生日期计算年龄,支持周岁计算
$birth = Carbon::parse('1990-05-15');
$age = $birth->age;
echo "年龄:$age 岁";
// 或使用 diff
$years = $birth->diffInYears(Carbon::now());
输出:年龄:36 岁
倒计时
计算距离目标时间的剩余时间
$target = Carbon::parse('2025-12-31 23:59:59');
$now = Carbon::now();
$diff = $now->diff($target);
echo $diff->d . '天 ' . $diff->h . '小时';
输出:237天 5小时
时区转换
在不同时区之间转换时间
$time = Carbon::parse('2025-01-01 12:00:00', 'Asia/Shanghai');
$time->setTimezone('America/New_York');
echo $time->format('Y-m-d H:i:s');
输出:2024-12-31 23:00:00
时间格式化
灵活的时间格式化输出
$now = Carbon::now();
echo $now->toDateTimeString();
echo $now->format('Y年m月d日 H:i:s');
echo $now->toIso8601String();
输出:2025-05-08 10:30:00
人性化时间
智能显示"几分钟前""几小时前"等人性化文本
$time = Carbon::parse('-3 days');
echo $time->diffForHumans();
$future = Carbon::parse('+1 week');
echo $future->diffForHumans();
输出:3天前 | 1周后