2015-01-30 4 views
0

Я чувствую, что это не должно быть проблемой, но, похоже, не может найти решения в Интернете с датами в Ruby. Я получаю дату из формы и переформатирую ее так, чтобы она находилась в правильном формате для базы данных. Поскольку у меня в настоящее время формат даты strptime использует «-». Если пользователь решает использовать «/» вместо этого, он прерывает код. Есть ли «подстановочный знак», который можно использовать, поэтому не имеет значения, как пользователь отделяет даты?Ruby on Rails Дата использования «/» или «-»

DateTime.strptime(params[:course][:start_date], "%m-%d-%Y").strftime("%Y-%m-%d") 

ответ

1
DateTime.parse "2001-01-01" # => #<DateTime: 2001-01-01T00:00:00+00:00 ((2451911j,0s,0n),+0s,2299161j)> 
DateTime.parse "2001/01/01" # => #<DateTime: 2001-01-01T00:00:00+00:00 ((2451911j,0s,0n),+0s,2299161j)> 

http://www.ruby-doc.org/stdlib-2.2.0/libdoc/date/rdoc/DateTime.html#method-c-parse

+0

Спасибо Кайл. Кажется, что он принимает и «/» и «-», но странно, он анализирует его как год/день/месяц. Когда я использую дату 06/12/2015, она анализирует ее как 2015/12/06, и когда я использую такую ​​дату, как 06/15/2015, она дает неверную ошибку даты. Тем не менее, дата правильно отправляется на контроллер как «06/12/2015» – user3461645

+0

Единственное, что я предлагаю, это посмотреть на хронический драгоценный камень - https://github.com/mojombo/chronic –