Laravelで日記アプリを作っているときに、よく日付を扱ったので、備忘録としてまとめておく。
僕は、date()
とstrtotime()
を使用して、日付を操作した。
phpでの日付操作に関する関数、クラス
-
date()
←指定したUnixタイムスタンプ(第2引数。nowの場合は省略可)フォーマット(第1引数)で指定した値を返す。 -
strtotime()
←英文記法の時間をUnixタイムスタンプで値を返す。時間操作可能。 -
Carbon
←DateTimeを継承したCarbonクラス。どうやらLaravel7ではnow()
だけで現在日時を表すことが可能。日時操作には便利らしいが、今回の日記アプリ作成には使わなかった。今後使ってみよう。
今日
echo date('Y年m月d日'); //2020年8月21日
echo now()->format('Y年m月d日'); //2020年8月21日
日時を前後させる
date関数を使う
date
$d = '2020-07-20'; //指定日時
echo date('Y年m月d日', strtotime($d . '-1 year')); //2019年7月20日
echo date('Y年m月d日', strtotime($d . '+1 day')); //2020年7月21日
//下のようにstrtotime()は第1, 2引数に分けて指定しても操作できる。
echo date('Y年m月d日', strtotime('+1 day', $d)); //2020年7月21日
Carbonライブラリを使う
carbon
$d = now();
echo $d; //2020-08-21 10:34:20
echo $d->addDay(); // 2020-08-22 10:34:20
echo $d->subDay(); // 2020-08-21 10:34:20
echo $d->addDay(3)->format('Y-m-d'); //2020-08-24
雑感
date()とstrtotime()でほとんどの日付操作ができた。
ただ、他の記事を読むとCarbonライブラリは直感的に操作できて便利とのこと。
まだCarbonライブラリはほとんど使っていないので、次のプロジェクト作成のときは使ってみたい。