0

我正在使用平面选择器,输入的日期如下:

1991 年 1 月 2 日(第 1 天/2 月/1991 年。

但是,当我添加类 flatpickr 时,它将日期转换为:

1991 年 2 月 1 日

美国版本的日期。

我认为我可以通过执行以下代码轻松解决此问题:

init() {
    let flatPicker = document.querySelector('.flatpickr')

    if (flatPicker) {
        flatPickr.l10ns.default.weekdays.shorthand = ['S', 'M', 'T', 'W', 'T', 'F', 'S']

        new flatPickr(flatPicker,
            {
                nextArrow: '<svg class="icon icon-arrow-right"><use xlink:href="/dist/assets/svg-definition/symbol-defs.svg#icon-arrow-right"></use></svg>',
                prevArrow: '<svg class="icon icon-arrow-left"><use xlink:href="/dist/assets/svg-definition/symbol-defs.svg#icon-arrow-left"></use></svg>',

                // Date format
                altInput: true,
                altFormat: 'd-m-Y',

                // Default Date
                dateFormat: 'd-m-Y'
            }
        );
    }
}

我认为重要的一点是 dateFormat:'dmY'。

其他人可以在这里发现我做错了什么吗?

非常感谢

4

1 回答 1

1

您需要一个自定义日期解析器。因为d.m.y不是标准的日期格式。在 flatpickr() 之前添加以下代码,它需要 moment.js

Flatpickr.defaultConfig.parseDate = function(str) {
    return moment.utc(str, "DD.MM.YYYY").toDate();
}
于 2017-07-07T07:53:32.560 回答