Фактическое значение против отображаемого значения - PullRequest
0 голосов
/ 19 октября 2019

Я работаю на рубине на рельсах. В этом у меня есть сомнения в фильтре dateTime, что означает, что мне нужно отобразить одну дату и отправить другую дату в бэкэнд для запроса.

Дата отображения - это дата, которая вводится пользователем. Другой датой является дата, которая является датой UTC для преобразования даты, введенной пользователем. Для этого я использую скрытое поле в формах и использовал JavaScript.

Форма ниже

.form-group
    = f.label :from_time, "From", class: 'sr-only'
    .input-group.date#from_time.hidden_on_ltie8{ style: "width:180px;", data: { behaviour: 'booking-filter-datetimepicker' } }
      // For time zone conversion
      = f.hidden_field :from_time
      = text_field_tag :from_time_display, '' ,value: @booking_filter_form.from_time, placeholder: 'From time', class: 'form-control' , id: "from_time_id", onkeydown: "event.preventDefault()"

JS ниже

$('#filter_id_account').on("click",function (event) {
     if($("#from_time_id").val()){
     var date1 = $("#from_time_id").val();
     $("#filter_forms_booking_from_time").val(time_conversion(date1));
     }
     else
     {
     $("#filter_forms_booking_from_time").val("");
     }

});

Здесь filter_id_account - идентификатор кнопки, from_time_id - идентификатор текстового поля, filter_forms_booking_from_time - идентификатор скрытого поля.

Но мне нужно только использовать текстовое поле. Здесь я использую только текстовое поле. Но при нажатии на кнопку «Фильтр» он загружается, и в этом поле загрузки из времени отображается фактическое значение, а после загрузки отображается отображаемое значение. Пожалуйста, кто-нибудь подскажет какую-нибудь идею для этого.

Ниже приведен код функции преобразования зоны тома.

var zone = moment.tz.guess();
function time_conversion(date) {
    out = moment(date, "DD/MM/YYYY HH:mm").format('YYYY-MM-DD HH:mm')
    var utc_time = moment.tz(out, zone).tz('UTC').format();
    return utc_time;
}

Здесь я использую moment.tz.guess () для получения часового пояса браузера. .

Кнопка формы:

    = f.submit 'Filter', class: 'btn btn-default', id: "filter_id_account"

Использование текстового поля

.form-group
        = f.label :from_time, "From", class: 'sr-only'
          // For time zone conversion
          = f.text_field :from_time,value: @booking_filter_form.from_time, placeholder: 'From time', class: 'form-control' , id: "from_time_id", onkeydown: "event.preventDefault()"

JS ниже

$('#filter_id_account').on("click",function (event) {
     if($("#from_time_id").val()){
     var date1 = $("#from_time_id").val();
     $("#from_time_id").val(time_conversion(date1));
     }
     else
     {
     $("#from_time_id").val("");
     }

});

Так что кто-нибудь скажет некоторыеИдея использовать только текстовое поле без каких-либо проблем со временем загрузки. А также, пожалуйста, скажите, правильно ли работает функция moment.tz.guess () на производстве ????

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