| この記事の要点 |
|---|
|
Eloquentのタイムスタンプの基本
下のUserモデル例は旧Laravelのnamespace Appを使っています。現行アプリでは通常app/Models配下のApp\Modelsを使うため、既存モデルの配置・名前空間へ合わせてください。3つのUser例はそれぞれ別の設定例であり、同名クラスを1ファイルへ重ねて貼るものではありません。
Laravelのモデルではcreated_atとupdated_atのカラムは自動で更新されます。
それぞれ作成日時と更新日時が入ることになります。
モデルの自動更新の設定を解除したい場合は以下の実装をします。
|
<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model |
DBに保存する日付の形式は$dateFormatで指定します。画面だけを年月日にしたい場合とは別です。PHPの日付書式ではYが年、mが月、dが日、H:i:sが時分秒で、YYYY/MM/DDではありません。DBカラムが受け入れる形式へ合わせてください。
|
<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model |
created_atとupdated_atの名称を変更したい場合は以下の様に実装します。
|
<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model |
保存時の動きと対象カラム
タイムスタンプが有効なEloquentモデルでは、新規保存時に作成日時と更新日時を設定します。既存モデルの更新では更新日時を設定し、作成日時は変更しません。ただし、自分で日付属性を変更した場合などはその値が優先されます。属性を代入しただけではDBへ保存されません。
以下はLaravel 13で属性生成を確認した、カラム名を変更する独立した例です。app/Models/TimestampExample.phpに対応します。実際にsaveするには対応するテーブルとcreation_date / last_updateカラムが必要で、定数を変更してもDBカラムは作成・改名されません。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class TimestampExample extends Model
{
public const CREATED_AT = 'creation_date';
public const UPDATED_AT = 'last_update';
protected $dateFormat = 'Y-m-d H:i:s';
}画面の表示だけを変える
取得したモデルの日時を表示するときは、日付オブジェクトのformatを使います。次は上のモデルを取得済みの$recordに対する例です。nullなら「未設定」を表示します。
echo $record->creation_date?->format('Y/m/d') ?? '未設定';保存形式Y-m-d H:i:sなら例は2026-10-07 12:34:56、表示用Y/m/dなら2026/10/07になります。旧記事のYYYY/MM/DDはPHPでは2026202620262026/OctOct/WedWedのような別の文字列になります(2026年10月7日の例)。JSON/APIの日時表現やタイムゾーンの変換は別の設定であり、$dateFormatだけで画面・APIすべての出力形式が変わると考えないでください。
更新を無効にする場合の注意
- public $timestamps = falseは、モデルの自動管理を無効にする設定です。DBのDEFAULTやトリガーまで無効にはしません。
- Laravel 13ではModel::withoutTimestampsのコールバック内だけ一時的に無効にできます。旧版へそのまま使えるとは限りません。
- DB::tableによるクエリビルダーの更新はモデルのタイムスタンプ管理を通りません。Eloquentモデル経由の更新と区別します。
- 保存できない場合はカラムの有無・型・名前と有効なモデル設定を確認します。表示だけを変える目的で本番の日時カラムを変更しないでください。
この記事の追加例は、DBへ接続せず、保存形式、作成/更新属性、カラム名、画面表示、無効化の範囲を確認しています。実テーブルへのsaveや本番DB変更は行っていません。
公式資料: Laravel 13 Eloquentのタイムスタンプ、PHPの日付書式(2026年10月確認)。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09