Я работаю на рубине на рельсах. В этом у меня есть сомнения в фильтре 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 () на производстве ????