Laravel Ajax以其他格式显示日期时间

时间:2020-04-28 15:46:42

标签: mysql ajax laravel datetime

我有表“ Trip”,其字段之一是“ schedule”。 “时间表”的类型是日期时间格式。 我在laravel中创建一个项目。在组合框中,它显示为“ 2020-04-29 10:09:00”,但我希望将其显示为“ 2020年4月29日”。 您知道如何解决吗?谢谢。 这是我的代码。

OrderController:

    public function getTrip(){
        $departure = Input::get('departure_id');
        $destination = Input::get('destination_id');

        $trip_a = Trip::select('schedule')
            ->where(['departure_id' => $departure, 'destination_id' => $destination])
            ->whereDate('schedule', '>', Carbon::now())
            ->get();

        return response()->json($trip_a);
    }

在web.php

Route::get('/order_trip', 'OrderController@getTrip');

在create.blade.php

<div class="col-sm-6">
     <label>Departure From</label>
     <select class="form-control" name="departure_id" id="departure_id">
             <option disabled selected value> -- Departure From -- </option>
                     @foreach($town as $t)
                         <option value="{{ $t->town_id }}">
                                 {{$t->town_name}}
                         </option> 
                     @endforeach 
     </select>
</div>
     @if($errors->has('departure_id'))
         <div class="text-danger">
              {{ $errors->first('departure_id')}}
         </div>
     @endif

<div class="col-sm-6">
     <label>Destination</label>
      <select class="form-control" name="destination_id" id="destination_id">
             <option disabled selected value> -- Destination -- </option>
                     @foreach($town as $t)
                         <option value="{{ $t->town_id }}">
                                 {{$t->town_name}}
                         </option> 
                     @endforeach 
     </select>
</div>
     @if($errors->has('destination_id'))
         <div class="text-danger">
              {{ $errors->first('destination_id')}}
         </div>
     @endif                          

    <div class="row">
     <div class="col-sm-6">
        <label>Date</label>
           <select class="form-control" name="day" id="day">
                <option disabled selected value> -- Date -- </option>
           </select>
     </div>
         @if($errors->has('day'))
               <div class="text-danger">
                    {{ $errors->first('day')}}
               </div>
         @endif

Ajax

<script>
   $(document).ready(function() {
    $('#day').click(function(){
        var selected_departure = $('#departure_id').val();
        var selected_destination = $('#destination_id').val();

        $.get('/order_trip?departure_id=' +selected_departure+'&destination_id=' 
          +selected_destination, function(data){
              $('#day').empty();
              $.each(data, function(index, value){
                console.log(value.schedule);
                $('#day').append('<option 
                   value='+value.schedule+'>'+value.schedule+'</option>');
              });
        });  
    });
});
</script>

1 个答案:

答案 0 :(得分:1)

您可以使用访问器来格式化日期。 Documentation

public function getScheduleAttribute($value)
{
   return $value->format('d F Y');
}

更新

别忘了将字段转换为日期时间Documentation

protected $casts = [
        'schedule' => 'datetime',
    ];

如果需要,设置一个变量Documentation

public function setScheduleAttribute($value)
    {
        $this->attributes['schedule'] = Carbon::parse($value);
    }
相关问题