Я создал приложение в Laravel и красноречивые даты возврата в этом формате: 2015-04-17 00:00:00
. Я отправляю один конкретный запрос в JSON, поэтому я могу создать график с D3, и я думаю, что мне нужны даты в ISO8601 ('1995-12-17T03:24:00'
) или какой-либо другой формат, который отлично сочетается с конструктором Date() javascript.Как изменить формат даты Laravel в JSON?
Есть ли способ изменить формат даты, который выводится на JSON на конце Laravel? Я не уверен, что использование мутатора - лучший подход, потому что это повлияет на дату в других частях моего приложения.
Или было бы лучше оставить выход JSON как есть и использовать некоторые методы строки javascript для управления форматом даты перед передачей его в конструктор Date()? Какой подход более эффективен?
Вот моя модель:
class Issue extends Model {
protected $fillable = [
'client_id',
'do',
'issue_advocate',
'service_number',
'issue_location',
'issue_description',
'level_of_service',
'outcome',
'referral_id',
'file_stale_date',
'date_closed',
'issue_note',
'staff_hours'
];
protected $dates = [
'do',
'date_closed',
'file_stale_date'
];
public function setDoAttribute($value)
{
$this->attributes['do'] = Carbon::createFromFormat('F j, Y', $value)->toDateString();
}
}
Вот мой запрос:
$issues = Issue::with('issuetypes')
->select(['do','level_of_service','outcome','id'])
->whereBetween('do',[$lastyear,$now])
->get()->toJson();
И JSON я получаю обратно:
[{"do":"2014-12-23 00:00:00","level_of_service":1,"outcome":1,"id":18995,"issuetypes":[{"id":9,"issuetype":"Non Liberty","pivot":{"issue_id":18995,"issuetype_id":9}}]}]
Вы можете разобрать дату в довольно любой формат в D3. –
Попробуйте использовать мутаторы и аксессоры, подробнее об этом от laravel doc –
С 'd3' это так же просто, как:' var format = d3.time.Формат ('% Y-% m-% дТ% H:% M:% S'); var myDate = format.parse ('1995-12-17T03: 24: 00'); ' – Mark