Разделение даты и времени на различные разделы - PullRequest
0 голосов
/ 28 марта 2012

У меня есть два поля start_time и end_time, оба из которых хранятся в формате datetime.

Проблема, с которой я хотел бы получить некоторую помощь, заключается в том, как использовать дату, введенную из атрибута start_time, для формирования даты для атрибута end_time (и просто подсказки для аспекта времени), поскольку время начала + конца будет иметь в те же дни, только время будет другим.

<div class="field">
       <%= f.label :start_time %>
       <%= f.datetime_select :start_time, :minute_step => 15, :default => Time.now+1.week, :order => [:month, :day, :year] %>
    </div>
    <div class="field">
        <%= f.label :end_time  %>

        <%= f.time_select :end_time, :ignore_date => true, :minute_step => 15 %>
    </div>

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Решил эту проблему, добавив метод before_save со следующим кодом:

sale_times.each do |sale|
    sale.end_time = DateTime.parse("#{sale.start_time.strftime("%x")} #{sale.end_time}")
end

Просмотр кода:

<div class="field">
    <%= f.label :start_time %>
    <%= f.date_select :start_time, :minute_step => 15, :default => Time.now+1.week, :order => [:month, :day, :year] %>
</div>
<div class="field">
    <%= f.label :end_time  %>      
    <%= f.time_select :end_time, :minute_step => 15 %>
</div>
0 голосов
/ 28 марта 2012

Вам нужно будет сделать это через JavaScript.

Используйте событие включения ключа.

$("#start").keyup(function(){
  ...
});

Если вы используете jquery, тогда используйте .val () getter и setter для любого входа.

d = Date($("#start").val())

d2 = Date(d.getday(), d.getMonth(), d.getDay());

$("#end").val(d2);

Что-то в этом роде.

Отформатируйте дату, используя день-месяц-год, используя для этого метод объекта datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...