Tobilog-Selection
こんにちは!とびろぐ管理人のとびうおです!
今回は、Laravel10でCarbonを使用する方法について説明していきます!
そもそも Carbonとは?
そもそもCarbonというのは、PHPのDataTimeクラスを拡張したものです。
日付と時刻の操作を直感的に行える簡単なライブラリとなっています。
使うための下準備&現在の日時・特定の日時の表示
では、基本的な使い方について説明してきます。
//web.php
Route::get('/carbon-test',[CarbonController::class,"index"]);
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Carbon\Carbon;
class CarbonController extends Controller
{
public function index()
{
// 現在の日時
$now = Carbon::now();
// 特定の日時を作成
$specificDate = Carbon::create(2023, 1, 1, 0, 0, 0);
// 日付のフォーマット
echo ('現在の日時');
echo $now->format('Y-m-d H:i:s');
echo '<br/>';
echo ('特定の日時を作成');
echo $specificDate->format('Y-m-d H:i:s');
}
}
とびうおくん
このような形で、
日付をobjectとして使って、
簡単に日付を表示することができました!
加算と減算
Carbonを使用すると、簡単に日付の加算や減算ができます。
// 明日の日付
$tomorrow = Carbon::now()->addDay();
// 5日前
$fiveDaysAgo = Carbon::now()->subDays(5);
// 日付のフォーマット
echo ('明日の日付');
echo $tomorrow->format('Y-m-d H:i:s');
echo '<br/>';
echo ('5日前');
echo $fiveDaysAgo->format('Y-m-d H:i:s');
とびうおくん
addDayやsubDaysといった関数が用意されています!
* @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval).
* @method $this addDay() Add one day to the instance (using date interval).
* @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval).
* @method $this subDay() Sub one day to the instance (using date interval).
といった、形で定義もされていますね!
日付の比較
Carbonの便利なところと言えば、日付の比較といったところでしょうか?
$first = Carbon::create(2023, 1, 1);
$second = Carbon::create(2023, 1, 5);
// $firstは$secondより前か?
$isBefore = $first->lt($second); // true
// $firstは$secondと同じか?
$isSame = $first->eq($second); // false
echo ('$isBefore');
echo $isBefore;
echo '<br/>';
echo ('$isSame');
echo $isSame;
とびうおくん
falseは何もなし、
trueは1と表現されているよ!
ローカライズ
ローカライズの形で、日本語での日付表示も可能です。
// 日本語での曜日表示
echo Carbon::now()->locale('ja')->isoFormat('dddd');
とびうおくん
日本語に対応しているのは良いですね!
まとめ
Laravel10でも難なく今まで通りにCarbonを使用することができました!
Carbonはとても便利なので、phpで時間の操作をする際にはぜひ活用してみてください!
コメント