我有一个从jQuery UI Datepicker填充日期的文本字段。根据用户在我的网站上的配置文件中选择的日期格式,日期选择器将使用DD-MM-YYYY或MM-DD-YYYY填充文本字段。如果日期填写为DD-MM-YYYY,则Ruby on Rails会正确解释此日期,并且日期被正确存储。但是当它是MM-DD-YYYY时,Ruby on Rails仍然认为它是DD-MM-YYYY,所以日期存储不正确。我怎样才能改变Rails期待的日期格式?带日期的文本字段,如何更改Rails期望的日期格式?
0
A
回答
1
您可以使用Date.strptime
使用任何你想要的格式:
>> RUBY_DESCRIPTION
=> "ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]"
>> require 'date'
=> true
>> Date.strptime('03/04/2010', '%d/%m/%Y').strftime('%c')
=> "Sat Apr 3 00:00:00 2010"
>> Date.strptime('03/04/2010', '%m/%d/%Y').strftime('%c')
=> "Thu Mar 4 00:00:00 2010"
所以第一个是采取03
为一个月的一天,而第二个是把它作为一个月。
0
您可以发送带日期的参数(即:reverse => true),以便在日期由Rails解析之前,在控制器中可以反转数字(如果需要)。
1
在我的愚见,你不应该使用服务器端代码来修复或解决视图问题。 您的服务器代码应该只包含一种格式,并且视图应该以用户想要的任何方式显示它。
如果在两个月内为应用程序添加新的语言环境,则只需更改视图,而不是服务器代码!
一个解决方案应该是使用隐藏字段。隐藏字段填充了服务器处理的格式(例如%d /%m /%Y格式)。 用于日期选择器的文本字段应该是一个简单的text_field_tag,它将被Rails忽略。
使用ONSELECT回调: http://jqueryui.com/demos/datepicker/#event-onSelect
填补了隐藏字段与格式良好的,当用户选择在日期选择器:)一个新的日期。
0
可能会有所帮助。
a = "10-30-2010".split('-')
a[0],a[1] = a[1],a[0]
a = a.join('-')
相关问题
- 1. 从数据库的日期字段更改日期格式
- 2. 如何将日期字符串格式化为期望的日期格式
- 3. iPhone日期字段 - 更改日期格式
- 4. 更改文本格式的日期
- 5. 如何将MySQL日期格式更改为字符串日期
- 6. 如何更改日期时间对象的日期格式?
- 7. 如何更改jQuery日期选择器中的日期格式?
- 8. 如何更改日期范围选择器的日期格式?
- 9. 如何更改日期格式在JavaScript中现有的日期
- 10. 如何更改相关日期的日期格式?
- 11. 如何更改日期的日期选取器格式
- 12. Rails更改表单字段属性值中的日期格式
- 13. 更改日期格式,以客户的日期格式
- 14. 如何更改CreationTime.ToShortDateString()的日期格式?
- 15. 更改日期字符串的格式
- 16. Rails日期格式
- 17. 如何将日期日期转换为英文日期格式?
- 18. Solr日期字段格式
- 19. 格式化日期字段
- 20. 根据空日期字段在mysql中更新日期格式
- 21. PHP - 更改日期格式
- 22. 更改日期格式
- 23. 更改日期格式(Javascript)
- 24. 更改日期格式Trello.NET
- 25. 更改日期格式
- 26. PHP - 日期更改格式
- 27. 更改新日期格式
- 28. 更改日期格式
- 29. 更改日期格式
- 30. 更改日期格式