2016-01-14 3 views
0

Ищете лучший способ конвертировать строку, такую ​​как "01/16/2016", в удобный формат даты, с которым могут обращаться рельсы.Дата реформата Рельсы 4

У меня есть календарь, в котором пользователи могут выбрать from_date и to_date .. на основе этих параметров мой поиск будет фильтровать результаты, соответствующие срокам.

К сожалению, рельсы не могут обрабатывать текущий формат. Не уверен, что это лучший способ. Я могу изменить javascript формы поиска, чтобы отображать дату по-другому, но я считаю, что этот формат наиболее удобен для пользователя.

thx!

+0

Почему вы не используете дату как data_type? – CottonEyeJoe

ответ

2

Вы можете использовать стандартный рубин Date класс:

some_date = Date.strptime('01/16/2016', '%m/%d/%Y') 

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

1

Как как Taglia сказал, что вы можете использовать strptime

Date.strptime('01/16/2016', '%m/%d/%Y') 

Вы можете изменить формат даты календаря от дд/мм/гггг дд/мм/гггг, то вы можете использовать

require 'date' 
date = DateTime.parse("16/01/2016") 
=> #<DateTime: 2016-01-16T00:00:00+00:00 ((2457404j,0s,0n),+0s,2299161j)> 
date.strftime('%a %b %d %H:%M:%S %Z %Y') 
=> "Sat Jan 16 00:00:00 +00:00 2016" 

Вы можете использовать Date вместо DateTime, если хотите только дату.

Смежные вопросы