📅  最后修改于: 2023-12-03 15:17:13.455000             🧑  作者: Mango
在编写 PHP 代码时,如果需要进行日期时间的操作,Carbon 是一个非常好用的扩展包。Laravel 框架默认集成了 Carbon 扩展包,让我们可以非常便捷地进行日期时间的格式化、转化、比较、操作等操作。
如果你使用的是 Laravel 六以下的版本,Carbon 扩展包需要手动安装。
composer require nesbot/carbon
如果你使用的是 Laravel 六及以上版本,Carbon 扩展包已经集成在框架中。
使用 Carbon 非常简单,我们首先可以通过 now()
方法获取当前时间。
use Carbon\Carbon;
$now = Carbon::now();
接下来,我们可以将时间格式化为需要的格式。
// 当前时间的年份
echo $now->year;
// 当前时间的月份
echo $now->month;
// 当前时间的天数
echo $now->day;
// 当前时间的小时数
echo $now->hour;
// 当前时间的分钟数
echo $now->minute;
// 当前时间的秒数
echo $now->second;
// 当前时间的星期几
echo $now->dayOfWeek;
我们也可以自定义输出的格式,如下所示:
// 自定义输出格式
echo $now->format('Y-m-d H:i:s');
其中,Y
表示年份,m
表示月份,d
表示天数,H
表示小时数,i
表示分钟数,s
表示秒数。
Carbon 可以非常方便地将时间字符串转化为 Carbon 对象。
$dateString = '2020-12-12 12:12:12';
$date = Carbon::parse($dateString);
同时,我们也可以将 Carbon 对象转化为时间字符串。
echo $date->toDateString(); // 2020-12-12
echo $date->toTimeString(); // 12:12:12
echo $date->toDateTimeString(); // 2020-12-12 12:12:12
在 Carbon 中,我们可以非常方便地对时间进行操作。
// 获取当前时间 3 小时之后的时间
echo Carbon::now()->addHours(3)->toDateTimeString();
// 获取当前时间 3 小时之前的时间
echo Carbon::now()->subHours(3)->toDateTimeString();
// 获取当前时间 2 天之后的时间
echo Carbon::now()->addDays(2)->toDateTimeString();
// 获取当前时间 2 天之前的时间
echo Carbon::now()->subDays(2)->toDateSTring();
我们可以使用 Carbon 对象进行时间的比较操作。
$date1 = Carbon::now();
$date2 = Carbon::now()->addDays(1);
if ($date1->gt($date2)) {
echo 'date1 is greater than date2.';
} else {
echo 'date1 is less than date2.';
}
使用 Carbon 扩展包,我们可以非常方便地进行日期时间的格式化、转化、比较、操作等操作。这样可以大大提高我们的开发效率,让我们的代码更易读、易懂。