安裝
由於 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 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)
以上這些比較方法使用了 PHP 原生的 $date1 == $date2;所以在 PHP 7.1 之前的版本,都是忽略了毫秒和微秒。
本作品採用《CC 協議》,轉載必須註明作者和本文連結