日期时间处理包 Carbon
安装
由于 Laravel 框架已经默认安装了 Carbon 包,所以不用安装。如果其他项目需要使用 Carbon 可以执行如下命令安装。
composer require nesbot/carbon
使用
直接通过 use 引用即可
use CarbonCarbon;
获取当前时间
可以用 now()
方法获取当前的时间和日期。如果你想指定其他时区,也可以给 now()
方法传入一个参数指定。
echo Carbon::now(); // 2018-10-10 15:57:47
echo Carbon::now('America/Los_Angeles'); // 2018-10-10 01:00:30
除了 now()
方法外,Carbon 还提供了 today()
, tomorrow()
, yesterday()
等静态方法,但是它们的时间都是 00:00:00
:
echo Carbon::today(); // 2018-10-10 00:00:00
echo Carbon::tomorrow(); // 2018-10-11 00:00:00
echo Carbon::yesterday(); // 2018-10-09 00:00:00
日期类型转换为字符串
默认情况下,Carbon 的方法返回的是一个日期时间对象。如果需要的是字符串,可以使用如下方法转换:
echo Carbon::now()->toDateString(); // 2019-01-22
echo Carbon::now()->toDateTimeString(); // 2019-01-22 09:41:42
echo Carbon::now()->toTimeString(); // 09:43:42
两个日期时间的比较
$first = Carbon::create(2019, 1, 20, 12, 30, 30);
echo $first->toDateTimeString(); // 2019-01-20 12:30:30
$second = Carbon::create(2019, 1, 22, 9, 30, 30);
echo $second->toDateTimeString(); // 2019-01-22 09:30:30
// 是否相等
var_dump($first->equalTo($second)); // bool(false)
var_dump($first->eq($second)); // bool(false)
var_dump($first == $second); // bool(false)
// 是否不相等
var_dump($first->notEqualTo($second)); // bool(true)
var_dump($first->ne($second)); // bool(true)
var_dump($first != $second); // bool(true)
// $first 是否大于 $second
var_dump($first->gt($second)); // bool(false)
var_dump($first->greaterThan($second)); // bool(false)
var_dump($first->isAfter($second)); // bool(false)
var_dump($first > $second); // bool(false)
// $first 是否大于或等于 $second
var_dump($first->gte($second)); // bool(false)
var_dump($first->greaterThanOrEqualTo($second)); // bool(false)
var_dump($first >= $second); // bool(false)
// $first 是否小于 $second
var_dump($first->lt($second)); // bool(true)
var_dump($first->lessThan($second)); // bool(true)
var_dump($first->isBefore($second)); // bool(true)
var_dump($first < $second);