Форматы даты в ActiveRecord / Rails 3 - PullRequest
3 голосов
/ 02 июня 2010

В моей модели у меня есть дата отправления и дата возврата.

Я использую текстовое поле вместо date_select, чтобы я мог использовать указатель даты JQuery.

Мое приложение сейчас находится в США, но я надеюсь получить международных членов.

Так что в основном это то, что происходит. Пользователь (США) вводит дату, например, 01.04.2010 (1 апреля).

Конечно, MySQL хранит его как дату / время, например 2010-04-01 ...

В любом случае, когда пользователь собирается редактировать дату позже, он показывает «01/04/2010», потому что я использую strftime («% m /% d /% Y), который не имеет смысла .. ... так что он думает, что это 4 января вместо первоначального 1 апреля.

Это единственный способ точно сохранить данные, если пользователь наберет: 2010-04-01

Надеюсь, все это имеет смысл. Что мне действительно нужно, так это способ, которым пользователь может ввести (или использовать средство выбора даты) дату в своем родном формате.

Таким образом, кто-то в Европе мог бы напечатать 01.04.2010 для 1 апреля, а кто-то в США напечатал бы 04/01/2010.

Есть ли простое, элегантное решение для этого?

Спасибо за любые предложения.

1 Ответ

2 голосов
/ 03 июня 2010

В последнее время я столкнулся с той же проблемой.

Мой сайт базируется во Франции, поэтому я должен хранить дату как французскую дату.

Я также использую Jquery DatePicker.

Для этого я установил I18n.locale в страну посетителя. Для примера:

I18.locale = :fr

Вы можете сделать это с помощью before_filter в вашем application_controller

Затем в вашем locales / fr.yml вы можете указать способ отображения даты

И, наконец, в вашем представлении вы можете установить представление формата даты со свойствами JqueryDatePicket.

Если я хорошо помню, этот метод был чем-то вроде этого:

$.datepicker.formatDate('dd-mm-yyyy');

Вы можете найти его в любом случае в документации по датчику.

И этот формат можно найти в качестве примера в вашей локали / fr.yml

И это все!

Надеюсь, это поможет!

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