You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何自动存储带毫秒的日期时间?

Laravel 中 Timestamp 列存储毫秒的实现方法

自动存储毫秒

首先确保你的 Laravel 版本在 5.6 及以上(该版本开始支持毫秒级时间戳),同时 MySQL 版本需不低于 5.6.4(支持毫秒存储)。要让 Eloquent 自动存储带毫秒的时间戳,在对应模型中做以下设置:

  • 添加 $dateFormat 属性,指定包含毫秒的时间格式:
protected $dateFormat = 'Y-m-d H:i:s.u';
  • 若使用 Laravel 8+,也可通过 $casts 属性指定字段类型:
protected $casts = [
    'date_time' => 'datetime:Y-m-d H:i:s.u',
];

完成设置后,通过 Eloquent 创建或更新记录时,date_time 字段会自动写入当前的毫秒级时间。如果要让默认的 created_at/updated_at 也存储毫秒,只需在迁移中把这两个字段改为 $table->timestamp('created_at', 6)->nullable(); 和 $table->timestamp('updated_at', 6)->nullable();,再配合上述模型设置即可。

手动存储毫秒

如果需要手动指定带毫秒的时间值,可采用以下方式:

  • 使用 Carbon 类生成并赋值:
use Carbon\Carbon;

// 直接传递 Carbon 实例,Eloquent 会自动处理毫秒
$model->date_time = Carbon::now();
$model->save();

// 或者手动格式化后赋值
$model->date_time = Carbon::now()->format('Y-m-d H:i:s.u');
$model->save();
  • 借助 MySQL 内置函数 CURRENT_TIMESTAMP(6) 直接插入:
DB::table('your_table')->insert([
    'date_time' => DB::raw('CURRENT_TIMESTAMP(6)'),
    // 其他字段
]);

内容的提问来源于stack exchange,提问作者Hamid Hosseini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 06:22:01