LoginSignup
5
4

More than 3 years have passed since last update.

Laravel - phpでの日付の扱い方(date(), strtotime(), Carbonライブラリ)

Last updated at Posted at 2020-08-21

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ライブラリはほとんど使っていないので、次のプロジェクト作成のときは使ってみたい。

参考記事

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