天天看點

PHP日期處理類-Carbon

carbon

Carbon 是php的日期處理類庫(A simple PHP API extension for DateTime.) 關于在Laravel中日期時間處理包Carbon的簡單使用,需要的朋友可以參考下。

安裝

可以通過composer來安裝Carbon,由于 Laravel 項目已預設安裝了此包,是以不需要再次執行上面的指令。

composer require nesbot/carbon
           

擷取目前時間

如果不指定時區,他會使用php.ini中時區配置

echo Carbon::now(); // 2019-01-01 10:00:00
echo Carbon::today(); // 今天日期
echo Carbon::tomorrow(); // 明天
echo Carbon::yesterday(); // 昨天
           

擷取字串類型日期

預設傳回一個對象,可以直接echo的原因是因為有 __toString 魔術方法

echo Carbon::now()->toDateString(); //2016-10-14
echo Carbon::now()->toDateTimeString(); //2016-10-14 20:22:50
           

日期解析 (支援語義解析 用法類似 strtotime)

個人覺着這是一個比較實用的功能

echo Carbon::parse('today')->toDateTimeString(); //擷取今天的日期

echo Carbon::parse('2019-01-03 +10 days')->toDateTimeString().PHP_EOL;

           

建構日期

使用單獨的年月日時分秒參數建構日期

$year = '2015';
$month = '04';
$day = '12';
echo Carbon::createFromDate($year, $month, $day); //2015-04-12 20:55:59

$hour = '02';
$minute = '15':
$second = '30';
echo Carbon::create($year, $month, $day, $hour, $minute, $second); //2015-04-12 02:15:30

echo Carbon::createFromDate(null, 12, 25); // 年預設為目前年份

           

日期操作

modify方法可以傳遞算數運算符 + -

echo Carbon::now()->addDays(25); //2016-11-09 14:00:01

echo Carbon::now()->addWeeks(3); //2016-11-05 14:00:01

echo Carbon::now()->addHours(25); //2016-10-16 15:00:01

echo Carbon::now()->subHours(2); //2016-10-15 12:00:01

echo Carbon::now()->addHours(2)->addMinutes(12); //2016-10-15 16:12:01

echo Carbon::now()->modify('+15 days'); //2016-10-30 14:00:01

echo Carbon::now()->modify('-2 days'); //2016-10-13 14:00:01

           

日期比較

要判斷一個日期是否介于兩個日期之間,可以使用 between() 方法. 第三個可選參數指定比較是否可以相等,預設為 true:

$first = Carbon::create(2012, 9, 5, 1);

$second = Carbon::create(2012, 9, 5, 5);

var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second));     // bool(true)

var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second));     // bool(true)

var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false));  // bool(false)
           

計算指定日期的內插補點

diffInDays-天; diffInHours-小時

$taday = Carbon::parse('today');
$yesterday = Carbon::parse('yesterday');

echo  $yesterday->diffInDays($taday,false); //傳回為正負數 1

echo  $taday->diffInDays($yesterday,false); // -1