Рендеринг пользовательских JSON: как правильно отформатировать формат даты в рельсах? - PullRequest
2 голосов
/ 23 января 2012

Я создал собственный объект json с датами в нем.К сожалению, когда я хочу использовать дату в jQuery для превращения в объект Date, объект оказывается недействительным.Это относится к строкам даты, таким как:

2011-12-14 00:59:59 +01: 00

Если я отрисовываю его со встроенным объектом.to_json время отображается так:

2011-12-14T00: 59: 59 + 01: 00

Таким образом, я могу превратить эту строку вобъект даты запроса.

Поэтому мой вопрос заключается в том, как отобразить дату в рельсах, чтобы она стала вторым форматом.

Спасибо, Маркус

Ответы [ 3 ]

1 голос
/ 06 июня 2012

Следующее будет работать во всех основных браузерах и ie7 + (я не проверял ie6), если положить в инициализатор (например, config / initializers /)

class ActiveSupport::TimeWithZone
  def as_json(options = {})
    strftime('%Y/%m/%d %H:%M:%S %z')
  end
end
1 голос
/ 23 января 2012

Насколько я могу судить по источникам, to_json метод DateTime добавляется ActiveSupport ( источник здесь ).

Таким образом, вы должны сделать это в инициализаторе (например, config/initializers/datetime.rb), например:

class DateTime
  def as_json(options = nil)
    strftime('%Y/%m/%dT%H:%M:%S%z')
  end
end

Протестировано и работает здесь: http://codepad.org/NRzqiJT3

0 голосов
/ 01 марта 2016

Вот еще один способ достижения аналогичной цели:

class Date
  def as_json(options = {})
    I18n.localize self
  end
end

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...