javascript — Формат даты установлен в дд / мм / гг, возвращая Г-м-д после проверки поиска

У меня странное поведение на сайте, на котором я работаю.
Datepicker установлен на dd / mm / yyyy и отлично работает на одной из страниц, отображающих результаты, но на другой, после отправки и обновления страницы, он меняет отображаемый формат на y-m-d.
Я использую плагин Foundation datepicker на встроенном веб-сайте Phalcon / php.
Вы встречали этот вопрос раньше? Какие-либо ведет? Спасибо !

"use strict";

$(function(){

// Datepicker
var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
var datepickerCommonOptions = {
language: "fr",
format: "dd/mm/yyyy",
leftArrow: "<",
rightArrow: ">"};

//CODE INITIALIZING ON THE PAGE ON WHICH IT CHANGES DATE FORMAT

// Field used on the calendar view.
var dateFromFilter = $("#dateFromFilter")
.fdatepicker($.extend({}, datepickerCommonOptions, {
onRender: function(date) {
return date.valueOf() < now.valueOf() ? "disabled" : "";
}
}))
.on("changeDate", function(ev) {
if (ev.date.valueOf() > dateToFilter.date.valueOf()) {
var newDate = new Date(ev.date);
newDate.setDate(newDate.getDate() + 1);
dateToFilter.update(newDate);
}
dateFromFilter.hide();
$("#dateToFilter")[0].focus();
})
.data("datepicker");

// Field used on the calendar view.
var dateToFilter = $("#dateToFilter")
.fdatepicker($.extend({}, datepickerCommonOptions, {
onRender: function (date) {
return date.valueOf() <= dateFromFilter.date.valueOf() ? "disabled" : "";
}
}))
.on("changeDate", function() {
dateToFilter.hide();
})
.data("datepicker");


//CODE INITIALIZING ON THE PAGE ON WHICH EVERYTHINK WORKS FINE

// Field used on the sales results view
var dateFromFilterUnlimited = $("#dateFromFilter.unlimitedDateFilter")
.fdatepicker($.extend({}, datepickerCommonOptions))
.on("changeDate", function(ev) {
if (ev.date.valueOf() > dateToFilter.date.valueOf()) {
var newDate = new Date(ev.date);
newDate.setDate(newDate.getDate() + 1);
dateToFilter.update(newDate);
}
dateFromFilterUnlimited.hide();
$("#dateToFilter")[0].focus();
})
.data("datepicker");

// Field working with the dateFrom used on the calendar view.
var dateToFilterUnlimited = $("#dateToFilter.unlimitedDateFilter")
.fdatepicker($.extend({}, datepickerCommonOptions, {
onRender: function (date) {
return date.valueOf() <= dateFromFilterUnlimited.date.valueOf() ? "disabled" : "";
}
}))
.on("changeDate", function() {
dateToFilterUnlimited.hide();
})
.data("datepicker");
});

Вот's a capture of when I set the date

И это после того, как я отправляю и страница обновляется

1

Решение

Если вы используете type="date" тогда входное значение всегда будет форматироваться как У-м-д.
Визуально это будет зависеть как от платформы, так и от браузера, но в конечном итоге будет использовать значение У-м-д формат.
И DatePicker будет работать с этим с ошибками.

У вас есть 2 решения:

  1. Удалить указатель даты и просто полагаться на визуализацию ввода по умолчанию браузера и вручную рассчитать Y-m-d формат.
  2. Изменить тип на текст, так что DatePicker будет работать нормально.

Проверьте эти руководства для получения дополнительной информации и примеров:

https://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_date

https://www.w3schools.com/html/html_form_input_types.asp

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector