3
0

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 5 years have passed since last update.

laravel テーブル最終更新日からの経過日数の計算

Last updated at Posted at 2016-08-09

laraveのeloquentで標準でついてくるタイムスタンプを利用し、テーブル最終更新日からの経過日数を計算する処理のメモ。

処理としては、・・value('created_at')まででデータベースから最後のレコードの追加日を取得。取得したcreated_atはcabonクラスなのでcarbonのdiffindaysメソッドを使い経過日を計算。というものです。

    //経過日数の計算
    $diff_day = HistoryList::orderBy('code', 'desc')->value('created_at')->diffInDays( Carbon::now() );

経過日数に応じてメッセージを表示するコントローラーを作る場合は・・

controller.php


     public function test() {
    	//経過日数の計算
      $diff_day = HistoryList::orderBy('code', 'desc')->value('created_at')->diffInDays( Carbon::now() );
    	//メッセージの表示
    	if($diff_day > 30) {
    		$message = "これほどまでに更新しないとは。。。。<br>何のために作ったのでしょうか?";
    	}elseif($diff_day > 14) {
    		$message = "旅行にでも出かけているのでしょうか?それとも・・。<br>せめて1週間に1回以上は入力しましょう。";
    	}elseif($diff_day > 7) {
    		$message = "少し更新が滞っている様です。なるべく毎日の更新を心がけましょう。";
    	}else {
    		$message = "";
    	}
    	return view('pages.home',compact('message','diff_day'));
    }

localdiskさんのコメントとLaravelで日付時刻の処理を書くならCarbon(カーボン)を使えを参考に追加編集しました。

3
0
2

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?