3

MM / DD/YYYYで表示したい日付ピッカーがあります。ただし、YYYY-MM-DDが必要なmysqldbを使用しています。現在のところ、貯蓄はありますが、日と月が逆になっています。

現在、次のイニシャライザーdate_time_formats.rbがあります。

Date::DATE_FORMATS[:default] = '%m/%d/%Y'

また、私のdatepicker jscriptには、表示したい正しい形式があります。

$(this).datepicker({"format": "mm/dd/yyyy", "weekStart": 0, "autoclose": true, "startDate":new Date()});

私はこのようなことを試しました:

 Date.strptime(params[:location], "%d/%m/%Y")

しかし、HashWithIndifferentAccessエラーが発生します。

モデルのインスタンスに割り当てる前に、paramsハッシュの日付を再フォーマットするにはどうすればよいですか?その理由は、日付が無効になるとモデルから拒否されるように見えるためです(たとえば、2013年4月4日は問題ありませんが、2013年4月20日は、20か月目がないためではありません)。私はRailsの初心者なので、間違っているかもしれませんが、それが機能しているように見えます。ありがとう!

4

3 に答える 3

5

ここにあるamerican_dategemを試してください:https ://github.com/jeremyevans/ruby-american_date

于 2013-03-21T03:01:53.303 に答える
1

さまざまな日付クラスのstrftimeメソッドを調べます。あなたが望む呪文はTime.local(params[:location]).strftime('%m/%d/%Y')、それが役立つことを願っています!

于 2013-03-21T02:38:16.517 に答える
0

日付を正しい形式にサニタイズする簡単な方法は、日付を保存する前にコントローラーで取得し、strftime を使用して形式を修正することです。例えば:

@model = Model.new(model_params)
@model.date_you_want = @model.date_you_want.strftime('%Y/%d/%m')
@model.save

これにより、日付が正しい形式で保存されます。(datepicker-boostrap gem も使用しています)

于 2014-12-04T15:38:55.763 に答える