PG WORKS

PHPやLinux(サーバー)などのノウハウや、便利なツールを紹介していきます。

【PHP】Carbonで日付の加算減算方法

前回、strtotimeの日付加算減算方法を紹介しましたが、、、

zen6a.hateblo.jp

Carbonのほうが、バグを気にせず使えるため、こちらも紹介したいと思います。

そのまえに、Composerが必要になります。前回の記事にて紹介しましたので、よければ参考にしてください。

zen6a.hateblo.jp

では、サンプルを公開〜。

<?php
  // carbonをダウンロードしたパス(前回の記事を参考)
  require '/home/○○○/bin/vendor/autoload.php';

  use Carbon\Carbon;

  // 今日
  echo Carbon::now();
	
  // 昨日
  echo Carbon::yesterday();
	
  // 明日
  echo Carbon::tomorrow();

  // 現時刻のタイムスタンプ
  echo Carbon::now()->timestamp;
		
  // 一週間前
  echo Carbon::now()->subWeek(1);
	
  // 一週間後
  echo Carbon::now()->addWeek(1);
	
  // 一ヶ月前
  echo Carbon::now()->subMonth(1);
	
  // 一ヶ月後
  echo Carbon::now()->addMonth(1);
	
  // 一年前
  echo Carbon::now()->subYear(1);
	
  // 一年後
  echo Carbon::now()->addYear(1);

  //月初
  echo Carbon::now()->startOfMonth();

  // 月末
  echo Carbon::now()->endOfMonth();
	
  // 一ヶ月前の月末
  echo Carbon::parse('-1 month')->endOfMonth();
	
  // 一ヶ月後の月末
  echo Carbon::parse('+1 month')->endOfMonth();
?>

日付のみ表示したい場合

<?php 
  $carbon = Carbon::now();
  echo $carbon->toDateString();
?>

日付の書式を変更したい場合

<?php 
  $carbon = Carbon::now();
  echo $carbon->format('Y年m月d日');
?>

生年月日から年齢判定

<?php 
$birthday = Carbon::parse('1990-05-15');
echo $birthday->age;
?>

日付の差分

<?php 
$date1 = Carbon::createMidnightDate(2018, 1, 1);
$date2 = Carbon::createMidnightDate(2018, 12, 31);

//秒
echo $date1->diffInSeconds($date2);
//分
echo $date1->diffInMinutes($date2);
//時間
echo $date1->diffInHours($date2);
//日
echo $date1->diffInDays($date2);
//週
echo $date1->diffInWeeks($date2);
//月
echo $date1->diffInMonths($date2);
//年
echo $date1->diffInYears($date2);
?>