首页 > 解决方案 > 为什么当我将数据添加到我的数据库时它没有存储正确的时间?

问题描述

我正在使用日期范围选择器来添加我的开始日期和时间以及结束日期和时间。但是,我不知道为什么它没有输入正确的时间。每当我添加数据时,除了时间之外,其他一切都是正确的。即使我选择了不同的开始时间和结束时间,它也会将其输出为上午 12 点。

当我添加事件数据时,即使我选择了不同的开始日期时间和结束日期时间,它也会将开始时间和结束时间保存为上午 12 点 在此处输入图像描述

当我查看详细信息时,除了时间之外,一切都是正确的。(请原谅输入元素和时间格式,我仍然需要编辑它) 在此处输入图像描述

它在日历上的显示方式 在此处输入图像描述

事件模型

class Event extends Model
{

    //
    protected $primaryKey = 'id';

    public function eventCategory()
    {
        return $this->belongsTo('App\EventCategory', 'evcat_id');
    }
    public function user()
    {
        return $this->belongsTo('App\User', 'user_id');
    }
    protected $fillable = [
        'event_name', 'event_desc', 'event_venue', 'event_status', 'event_start', 'event_finish', 'evcat_id', 'user_id',
    ];

    public $timestamps = false;

}

在 EventController 中存储函数

public function store(Request $request)
    {

        //

         $this->validate($request, [
            'event_name' => 'required|string|min:2|max:255',
            'daterange' => 'required',
        ]);
        $time_start = $request->input('start_time');

        $time_end = $request->input('end_time');

        $tempDate = $request->input('daterange');
        $temp2 = str_replace('-', null, $tempDate);
        $temp2 = str_replace('/', '-', $temp2);
        $temp3 = explode('  ', $temp2);

        $date1 = date_create_from_format('m-d-Y', $temp3[0]);
        $date2 = date_create_from_format('m-d-Y', $temp3[1]);

        $event = new event([
            'event_name' => $request->input('event_name'),
            'event_desc' => $request->input('event_desc'),
            'event_venue' => $request->input('event_venue'),
            'event_start' => date_format($date1, 'Y-m-d'),
            'event_finish' => date_format($date2, 'Y-m-d'),
            'event_venue' => $request->input('event_venue'),
            'evcat_id' => $request->input('evcat_id'),
            'user_id' => $request->input('user_id'),
        ]);

        $event->save();
        Session::flash('success', 'Event Created Successfully');
        return redirect()->route('event.sched');

    }

事件迁移表

    {
        Schema::create('events', function (Blueprint $table) {
            $table->increments('id');
            $table->string('event_name');
            $table->string('event_desc')->nullable();
            $table->string('event_venue')->nullable();

            //0 = Ongoing; 1 = Upcoming; 2 = Finished;
            $table->integer('event_status')->nullable();
            $table->dateTime('event_start');
            $table->dateTime('event_finish');

            $table->integer('evcat_id')->unsigned();
            $table->integer('user_id')->unsigned();
        });

        Schema::table('events', function($table) {
            $table->foreign('evcat_id')->references('id')->on('event_categories')->onDelete('cascade');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });

    }

刀片文件 event.blade.php 我使用模态添加数据

<div class="modal-header">
                <h4 class="modal-title"><strong>Add</strong> Event</h4>
                <!--<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>-->
            </div>
            <form method = "post" action = "{{ url('/sched/add') }}">
                {{ csrf_field() }}
                <div class="modal-body">
                    <div class="row">
                        <input type="hidden" id="user_id" name="user_id" value="{{ Auth::user()->id }}">
                        <div class="col-md-8">
                            <label class="control-label">Event Name</label>
                            <input class="form-control form-white" type="text" name="event_name" id = 'event_name' required/>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-8">
                            <label class="control-label">Description</label>
                            <input class="form-control form-white" type="text" name="event_desc" id = 'event_desc' required/>
                        </div>
                    </div>


                    <div class="row">
                        <div class="col-md-8">
                            <label class="control-label">Venue</label>
                            <input class="form-control form-white"  type="text" name="event_venue" id = 'event_venue' required/>
                        </div>
                    </div>


                    <div class="row">
                        <div class="col-md-8">
                            <label class="control-label">Start Date - End Date</label>
                            <input type="text" onclick = "getTime()" class="form-control input-daterange-timepicker" id = 'daterange' name="daterange" value="" />
                            <input type="hidden" id="start_time">
                            <input type="hidden" id="end_time">
                        </div>

                    </div>


                    <div class="row">
                    <div class="col-md-8">

                        <label class="control-label">Choose Event Category</label>
                        <select class="form-control form-white" data-placeholder="Choose a category..." name="evcat_id" id = "evcat_id">
                            @foreach($category as $cat)
                            <option value= '{{$cat->id}}'>{{$cat->ev_category_name}}</option>
                            @endforeach
                        </select>
                    </div>
                </div>

                <div class="modal-footer">
                    <button type="submit" class="btn btn-danger waves-effect waves-light save-category">Save</button>
                    <button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal">Close</button>
                </div>

            </div>
        </div>

    </form>

标签: phplaravel

解决方案


在我看来,您使用的格式 'mdY' 和 'Ymd' 不包括时间占位符。因此,时间将始终默认为 00:00:00。

要在日期格式中包含时间,请使用“H:i:s”

示例:'Ymd H:i:s'

在此处查看更多格式信息:https ://www.php.net/manual/en/function.date.php


推荐阅读