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

Laravel迁移中Timestamp:能否拆分日期与时间?

关于Laravel时间戳提取日期/时间的问题

完全不需要单独创建独立的时间戳字段!$table->timestamps()生成的created_at和updated_at字段本质上是datetime类型(Laravel 8+默认是timestamp类型),你可以直接借助Laravel自动绑定的Carbon实例,轻松提取日期或时间部分。

具体实现方法:

  • 直接调用Carbon方法:
    Laravel会自动把这些时间戳字段转换成Carbon对象,所以你能直接用Carbon的方法拆分日期和时间:

    // 获取created_at的纯日期,格式如 "2024-05-20"
    $model->created_at->toDateString();
    
    // 获取created_at的纯时间,格式如 "14:30:45"
    $model->created_at->toTimeString();
    
    // 自定义格式也很方便,比如输出 "2024年05月20日 下午2点30分"
    $model->created_at->format('Y年m月d日 下午g点i分');
    
  • 用访问器简化调用:
    如果需要频繁拆分,建议在模型里定义访问器,以后直接像用普通属性一样调用:

    // 在你的模型类中添加
    public function getCreatedDateAttribute()
    {
        return $this->created_at->toDateString();
    }
    
    public function getCreatedTimeAttribute()
    {
        return $this->created_at->toTimeString();
    }
    

    使用时就这么简单:

    echo $model->created_date; // 直接输出日期
    echo $model->created_time; // 直接输出时间
    

什么时候需要单独建字段?

只有当业务逻辑要求必须把日期和时间分开存储(比如某些特殊的报表统计需求),或者需要频繁基于纯日期/时间做数据库查询且不想每次都转换时,才需要考虑创建独立字段。否则完全没必要多此一举,Carbon已经能搞定所有场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:14:33