rails - how to show and save a date in us format?
我可以让我的
如果我在其他数据中存在验证错误,则表单将以所需方式重新显示日期,该方式为
我还可以编辑记录并以mm / dd / yy
格式查看日期
我遇到的问题是,编辑记录会翻转月份和年份,这样
1 | 08/02/2012 |
成为
1 | 02/08/2012 |
和
1 | 08/19/2012 |
根本不起作用。
具有讽刺意味的是,如果我连续两次记录记录,并且一天不超过12天,它将翻转回原始值
查看:
1 | = f.text_field :content_date, id: 'datepicker', size: 10 |
我刚开始创建并可以使用(
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def new @link = Link.new @link.content_date=Time.new().strftime("%m/%d/%Y") ... def edit @link = Link.find(params[:id]) @link.content_date=Time.new().strftime("%m/%d/%Y") if @link.content_date.nil? def create @link = Link.new(link_params) if @link.content_date.nil? @link.content_date = Time.new().strftime("%Y/%m/%d") else @link.content_date = @link.content_date.strftime("%Y/%m/%d") end |
但是
1 2 3 4 5 | def update redirect_to Link.find(params[:id]).tap { |link| link.update!(link_params) } end |
,我不知道如何在更新中更改
中所做的那样
fyi我的
我目前在
中没有任何日期初始值设定项
js日期选择器:
1 2 3 4 5 6 7 8 9 10 11 | $ cat app/assets/javascripts/date-picker.js $(function() { $("#datepicker" ).datepicker(); }); $(function(){ var dateInput = $("#datepicker"); var format = 'yy-mm-dd'; dateInput.datepicker({dateFormat: format}); dateInput.datepicker('setDate', $.datepicker.parseDate(format, dateInput.val())); }); |
我改变了
1 | /app/assets/javascripts/datepicker.js |
更改
1 2 3 4 5 | var format = 'yy-mm-dd'; to var format = 'mm/dd/yyyy'; |
然后我用
添加了文件
1 2 3 4 5 6 7 8 9 10 11 | # Date # ---------------------------- Date::DATE_FORMATS[:default] ="%m/%d/%Y" # DateTime # ---------------------------- DateTime::DATE_FORMATS[:default] ="%m/%d/%Y" # Time # ---------------------------- Time::DATE_FORMATS[:default] ="%m/%d/%Y %H:%M:%S" |
这有助于所有显示和输入字段以及日期选择器,但日期仍然翻转。
最后(此位修复了日期翻转部分),我将控制器更改为:
1 2 3 4 5 6 7 8 9 10 | def update r = Link.find(params[:id]) r.tap { |link| link.update!(link_params) } r.update!(:content_date => link_params[:content_date].to_date.strftime("%Y-%d-%m")) redirect_to r end |