我有表“ 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>
答案 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);
}