在搜索验证后,日期格式设置为dd / mm / YY返回Y-m-d

时间:2018-03-14 14:28:01

标签: javascript php jquery datepicker date-format

我在我工作的网站上有一种奇怪的行为。 datepicker设置为dd / mm / yyyy并且在显示结果的其中一个页面上正常工作,但另一个页面在提交并刷新页面后,它将显示的格式更改为y-m-d。 我在Phalcon / php构建的网站上使用基础datepicker插件。 你以前遇到过这个问题吗?任何线索?谢谢!

"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");
});

Here's a capture of when I set the date

And this is after I submit and the page refreshes

1 个答案:

答案 0 :(得分:0)

如果您使用type="date",则输入值将始终格式化为 Y-m-d
在视觉上它将取决于平台和浏览器,但最终值将使用 Y-m-d 格式。
而datepicker将使用此错误。

你有2个解决方案:

  1. 删除datepicker 并依赖浏览器的默认输入呈现并手动计算Y-m-d格式。
  2. 将类型更改为文本,因此datepicker可以正常工作。
  3. 查看这些手册以获取更多信息和示例:

    here

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

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