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

Laravel中如何将两个日期数据存入单个数据库列?

可行实现方案

你的核心需求是将两个日期选择器的from和to字段,拼接成「YYYY年MM月DD日 至 YYYY年MM月DD日」格式存入requested_date字段,以下是修正后的实现方案:

关键问题修正

  1. 原代码直接拼接DateTime对象会生成非预期的字符串,需通过日期格式化方法生成目标格式
  2. 赋值时错误使用了$request->requested_date,应使用自定义的$requested_date变量

修改后的控制器代码

public function saveRecord(Request $request)
{
    $request->validate([
        'leave_type'     => 'required|string|max:255',
        'from'           => 'required|string|max:255',
        'to'             => 'required|string|max:255',
        'day'            => 'required|string|max:255',
        'leave_reason'   => 'required|string|max:255',
    ]);
    
    DB::beginTransaction();
    try{   
        $dt             = Carbon::now();
        $todayDate      = $dt->toDayDateTimeString();
        
        // 解析日期并格式化为中文日期格式
        $fromDate = Carbon::parse($request->from)->format('Y年m月d日');
        $toDate = Carbon::parse($request->to)->format('Y年m月d日');
        $requested_date = "{$fromDate} 至 {$toDate}";

        $leaves = new LeaveAdmin;
        $leaves->rec_id         = $request->rec_id;
        $leaves->name           = $request->name;
        $leaves->date_filed     = $todayDate;
        $leaves->leave_type     = $request->leave_type;
        $leaves->requested_date = $requested_date; // 修正赋值变量
        $leaves->day            = $request->day;
        $leaves->leave_reason   = $request->leave_reason;
        $leaves->save();
        
        DB::commit();
        Toastr::success('Create new Leaves successfully','Success');
        return redirect()->back();

    }catch(\Exception $e){
        DB::rollback();
        Toastr::error('Add Leaves fail','Error');
        return redirect()->back();
    }
}

额外说明

  • 如果前端传递的日期格式无法被Carbon自动解析(比如非Y-m-d格式),可以指定解析格式:
    $fromDate = Carbon::createFromFormat('你的日期格式', $request->from)->format('Y年m月d日');
    
    例如前端传的是d/m/Y,就用Carbon::createFromFormat('d/m/Y', $request->from)
  • 迁移文件中requested_date字段为string类型,足够存储目标格式的字符串,无需修改迁移

内容的提问来源于stack exchange,提问作者Jay-ar Cristobal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:45:19