简体   繁体   English

搜索验证后,日期格式设置为dd / mm / YY,返回Ymd

[英]Date format set to dd/mm/YY returning Y-m-d after search validation

I have an odd behaviour on a website I work on. 我在工作的网站上有奇怪的行为。 The datepicker is set to dd/mm/yyyy and works fine on one of the pages displaying results, but on the other one, after submiting and the page getting refreshed, it changes the format displayed to ymd. 日期选择器设置为dd / mm / yyyy,并且在显示结果的页面之一上可以正常工作,但在另一页面上,提交并刷新页面后,它将显示格式更改为ymd。 I'm using foundation datepicker plugin on a Phalcon/php built website. 我在Phalcon / php构建的网站上使用基础datepicker插件。 Have you met this issue before ? 您以前遇到过这个问题吗? Any leads ? 有线索吗? thanks ! 谢谢 !

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

这是我设定日期的快照

这是我提交并刷新页面之后

If you use type="date" then input value will always be formated like Ymd . 如果您使用type="date"则输入值将始终采用Ymd格式
Visually it will depend on both platform and browser but in the end value will use Ymd format. 在视觉上,它将取决于平台和浏览器,但最终值将使用Ymd格式。
And datepicker will work with this with errors. 并且datepicker可以与此一起工作,但有错误。

You have 2 solutions: 您有2个解决方案:

  1. Remove datepicker and just rely on the browser's default input rendering and manually calculate Ymd format. 删除datepicker ,仅依靠浏览器的默认输入呈现并手动计算Ymd格式。
  2. Change type to text , so datepicker will work fine. 将类型更改为text ,所以datepicker可以正常工作。

Check these manuals for more info and examples: 查看这些手册以获取更多信息和示例:

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

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM