Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails-3 – Rails3 / jQuery UI Datepicker – 保存时的月和日相反大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(我的问题和 described in this question几乎一样,只有这个答案在我的情况下不起作用)

我在一个带有POSTGRes数据库的Rails应用程序中使用了jQuery UI Datepicker.默认实现使用mm / dd / yy日期格式显示所选日期,这正是我想要的.但是,将记录保存到数据库后,月份和日期将相反 – 然后显示为yy-dd-mm.所以选择3/11/2012试图保存为11月3日而不是3月11日,而像2012年3月31日这样的日期根本不存储,因为它不存在.

到目前为止,我已经下了3个不同的途径,试图解决这个问题:

1)首先尝试重新格式化文本字段,使显示器看起来像我想要的:

<%= f.text_field :foo,:value => (@model.foo.blank? ? '' : @model.foo.strftime('%m/%d/%Y')),class: "datepicker" %>

最初正确显示03/31/2012,但保存时仍然相反.

2)所以接下来我尝试改变日期存储的默认方式,认为会解决问题.如this question的答案所述,我将以下内容添加到config / locales / en.yml中:

# config/locales/en.yml
en:
  date:
    formats:
      default: "%m/%d/%Y"

这根本没有任何区别.接下来我发现this question并尝试使用以下行创建config / initializers / date_formats.rb:

Date::DATE_FORMATS[:default]="%m/%d/%Y"
Time::DATE_FORMATS[:default]="%m/%d/%Y %H:%M"

与上述相同,没有区别.

3)在玩了很多组合后,我发现DID的工作是在我对datepicker插件的调用中指定了yyyy-mm-dd格式 – 这与我想要的相反,但是至少日期可以是成功保存所以datepicker调用看起来像这样

$( ".datepicker" ).datepicker({ dateFormat: 'yy-mm-dd' });

从日历中选择3月31日,填写2012-03-31的字段,保存后仍显示为2012-03-31.

但是,我可以如何让日期标记工具使用mm / dd / yy格式?我不能想象这是一件困难的事情,但是我错过了什么?我必须做一些事情如何日期存储在POSTGRes? (它们被指定为date,而不是datetiR_299_11845@e.)

解决方法

那么这取决于你如何@R_801_10687@中存储数据.
如果您碰巧使用RAW sql查询,您可以在插入查询中使用to_date(‘2012年3月31日’,’

POSTGRes’to_date reference

现在,在您的客户端,您可以使用jquery日期选择器

$.datepicker.formatDate('dd-M-yy',YourdatE);

我使用DD星期一YYYY,因为它看起来更清晰.您可以根据需要使用mm / dd / yy格式或其他格式.在这些情况下,在POSTGRe的to_date函数中使用所需的格式

请注意,我没有上面的代码测试.发表评论如果有任何问题或者你面临任何麻烦.

编辑:

在将数据插入数据库之前,您可以在rails视图中使用Date.parse(‘2011-06-18′),并将formatDate设置为datepicker中的’yy-mm-dd’.

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails-3 – Rails3 / jQuery UI Datepicker – 保存时的月和日相反全部内容,希望文章能够帮你解决ruby-on-rails-3 – Rails3 / jQuery UI Datepicker – 保存时的月和日相反所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。