【问题标题】:How to save data from html5 input type date/time as Date Time in Rails?如何将来自 html5 输入类型日期/时间的数据保存为 Rails 中的日期时间?
【发布时间】:2011-11-07 23:46:53
【问题描述】:

如何处理这两个输入,以便两者都可以发送到控制器并保存为日期时间?或者任何帮助器/宝石看起来像来自 html5 的日期和时间选择器?

html5 输入:

%input{:type => "date", :value => "yyyy-mm-dd"}
%input{:type => "time", :value => "07:00"}

标准助手:

= f.datetime_select :time

编辑: 我检查了更简单的解决方案,它适用于日期时间字段:

%input{:name => "model[start_at]", :type => "date", :value => "yyyy-mm-dd"}
%input{:name => "model[start_at]", :type => "time", :value => "07:00"}

【问题讨论】:

    标签: jquery ruby-on-rails html datetime html-helper


    【解决方案1】:

    假设您的日期时间字段名为“started_at”,试试这个:

    1) 在你的模型中,定义这两个方法:

    def started_at_string
      # return started_at datetime converted to a string in a desired format, e.g.:
      self.started_at.strftime(Time::DATE_FORMATS[:default])
    end
    
    started_at_string=(datetime_string)
      self.started_at = Time.zone.parse(datetime_string)
      # also you should process cases when the string is not a datetime
    end
    

    2) 在你看来:

    f.text_field :started_at_string
    

    3) 将此日期选择器应用于文本字段: http://jqueryui.com/demos/datepicker/ ,这次的时间选择器在顶部:http://trentrichardson.com/examples/timepicker/ ,你会得到一个不错的日期时间选择器。

    不过,这种方法在 iPhone 上效果不佳(屏幕键盘和选择器同时弹出,难以输入日期)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 2021-11-04
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      相关资源
      最近更新 更多