【问题标题】:Merging components of DateTime fields合并 DateTime 字段的组件
【发布时间】:2012-04-10 21:29:34
【问题描述】:

我有两个属性start_timeend_time

如何使用为start_time 输入的日期(不包括时间)包含在end_time 字段中(因为开始+结束时间将发生在同一天,所以没有意义提示用户输入两次)。

查看:

<div class="day">
    <div class="field">
       <%= f.label :start_time, "Date"  %>
       <%= f.date_select :start_time,:default => Time.now+1.week, :order => [:month, :day, :year], :ampm => true %>
    </div>
    <div class="field">
        <%= f.label :start_time, "Start Time" %>
        <%= f.time_select :start_time, :ignore_date => true, :minute_step => 15, :ampm => true, :default => Time.now.beginning_of_day + 9.hours %>
    </div>
    <div class="field">
        <%= f.label :end_time, "End Time" %>
        <%= f.time_select :end_time, :minute_step => 15, :ampm => true, :default => Time.now.beginning_of_day + 15.hours %>
    </div>
    <%= link_to_function "Remove this day", "remove_fields(this)" %>
</div>

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 datetime


    【解决方案1】:

    实际上并没有一种巧妙的方法来做到这一点。您必须提取各个组件:

    t1 = start_time
    t2 = end_time
    t2 = Time.local(t1.year,t1.month,t1.day,t2.hour,t2.min,t2.sec).in_time_zone
    

    注意您在哪个时区工作。您可能需要使用Time.utc 而不是Time.local

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 2018-03-27
      • 1970-01-01
      相关资源
      最近更新 更多