Carbonとは
phpのDateTimeクラスをオーバーラップした日付操作ライブラリ
Carbonには便利なメソッドが揃っているので、日付の操作をDateTimeクラスで色々いじるよりは
簡単に解決できるかも
インストール
Composerを使ってインストール
準備
autoload.phpを呼ぶ
carbon.php
require 'vendor/autoload.php';
Carbonの使い方
インスタンス生成
carbon.php
// new
$carbon = new Carbon();
// 静的
$carbon = Carbon::now();
// 日付け指定
$carbon = new Carbon("2022-11-21");
// 静的
$carbon = Carbon::parse("2022-11-21");
日付けフォーマット
carbon.php
$carbon->format('Y-m-d');
// 2022-11-21
日付の取得
carbon.php
今日
$carbon::today()->format('Y-m-d H:i:s'));
// 2022-11-21"
昨日
$carbon::yesterday()->format('Y-m-d H:i:s'));
// 2022-11-20
明日
$carbon::tomorrow()->format('Y-m-d H:i:s'));
// 2022-11-22
日付の加減算
carbon.php
※元の値を操作したくない場合はcopy()メソッドを使用
年追加
$carbon->copy()->addYear(1)->format('Y-m-d H:i:s');
// 2023-11-21
月追加
$carbon->copy()->addMonth(1)->format('Y-m-d H:i:s');
// 2022-12-21
日追加
$carbon->copy()->addDay(1)->format('Y-m-d H:i:s');
// 2022-11-22
1週追加
$carbon->copy()->addWeek(1)->format('Y-m-d H:i:s');
// 2022-11-28
月あふれの場合 1月31日にして1カ月足すと
$carbon->copy()->setDate(2022, 1, 31)->addMonth(1)->format('Y-m-d');
// 2022-03-03
月あふれさせない場合
$carbon->copy()->setDate(2022, 1, 31)->addMonthWithoutOverflow(1)->format('Y-m-d');
// 2022-02-28
// あふれさせたくない場合はWithoutOverflowメソッドを使用する(例, 年) addYearsWithoutOverflow)
年の差分
$carbon_diff = $carbon::parse("2020-09-01");
$carbon->diffInYears($carbon_diff);
// 2
月の差分
$carbon->diffInMonths($carbon_diff);
// 26
日の差分
$carbon->diffInDays($carbon_diff);
// 811
他にもいろいろ
addHour()
addMinute()
addSecond()
addMillisecond()
addMicro()
addMillennium()
addCentury()
addDecade()
addQuarter()
addWeek()
減算系は
基本的にaddをsubに
使い方は大体同じ
subYear();
subMonth();
subDay();
日付の取得
carbon.php
年の取得
$carbon->year
// 2022
月の取得
$carbon->month;
// 11
日取得
$carbon->day;
// 21
時の取得
$carbon->hour(14);
$carbon->hour;
// 14
分の取得
$carbon->minute(22);
$carbon->minute);
// 22
秒の取得
$carbon->second(30);
$carbon->second
// 30
日本名とかの取得
setLocale('ja')で日本語に
Carbon::setLocale('ja');
曜日名(短縮)
$carbon->getTranslatedMinDayName());
// 月
曜日名
$carbon->getTranslatedDayName());
// 月曜日
月名
$carbon->getTranslatedMonthName());
// 11月
年の何日目か
$carbon->dayOfYear();
// 325
月の何週目か ※月曜始まり
$carbon->weekNumberInMonth;
// 4
年の何週目か
$carbon->weekNumberInMonth;
// 47
月の日数
$carbon->daysInMonth;
// 30
日付取得
$carbon->toDateString();
// 2022-11-21
時刻取得
$carbon->hour(14);
$carbon->minute(22);
$carbon->second(30);
$carbon->toTimeString();
// 14:22:30
日付判定
carbon.php
未来
$carbon->isFuture();
// false
過去
$carbon->isPast();
// ture
今日
$carbon->isToday();
// true
平日
$carbon->isWeekday();
// true
週末(土日)
$carbon->isWeekend());
// false
月曜日
$carbon->isMonday();
// true
// 月~日までメソッドがあるよ
日付範囲
Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'));
// true
誕生日
$carbon->isBirthday((new Carbon())->setDate(2022, 1, 31)));
// false
$carbon->isBirthday((new Carbon())::now()));
// true
うるう年
$carbon->isLeapYear();
// false