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(カーボン)を使えを参考に追加編集しました。