5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Carbonを使おう

Last updated at Posted at 2022-11-24

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
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?