Laravel日期时间处理包 Carbon

安装

由于 Laravel 框架已经默认安装了 Carbon 包,所以不用安装。如果其他项目需要使用 Carbon 可以执行如下命令安装。

composer require nesbot/carbon

使用

直接通过 use 引用即可

use Carbon\Carbon;

获取当前时间

可以用 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 now()->addHours(5);  //当前时间增加五小时
echo now()->subHours(5);  //当前时间减少五小时 

echo now()->addMinutes(5);  //当前时间增加五分钟
echo now()->subMinutes(5);  //当前时间减少五分钟  

echo now()->addSeconds(5);  //当前时间增加五秒
echo now()->subSeconds(5);  //当前时间减少五秒 

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);                        // bool(true)

// $first 是否小于或等于 $second
var_dump($first->lte($second));                    // bool(true)
var_dump($first->lessThanOrEqualTo($second));      // bool(true)
var_dump($first <= $second);                       // bool(true)
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!