Flatpickr和Moment.js意外日期格式

时间:2017-05-14 18:11:18

标签: date datetime timestamp momentjs flatpickr

我使用Flatpickr的以下实例化代码。

$("#entry_date_time").flatpickr({
    enableTime: true,
    altInput: true,
    defaultDate: moment().format("YYYY-MM-DD HH:MM:SS"),
    dateFormat: "YYYY-MM-DD HH:MM:SS",
    minuteIncrement: 1
});

我遇到的问题是moment().format("YYYY-MM-DD HH:MM:SS");为我提供了正确的数据,但$("#entry_date_time").val()的输出等于

  

2017201720172017-JanJan-SatSat 0000:JanJan:0000

而不是我提供的预期格式。

任何有关可能导致此问题的想法都会很棒,感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

根据输出,并查看datetime的flatpickr文档,似乎只有单个字符可以采用格式而不是多个?例如,4个Y将解释重复4次,每月两次等等。

您需要的dateFormat应该是:

dateFormat: "Y-M-D H:i"

...但是,我通过flatpickr查看时间秒部分的格式化选项?

秒数更新

秒功能有flatpickr feature request

答案 1 :(得分:0)

Flatpickr有其自己的formating tokens,与moment支持的版本不同。但是,好处是您可以使用GET my_target_index/_search { "query": { "bool": { "must_not": [ {"regexp": { "my_target_field": ".+" }} ] } } } parseDate配置选项来支持自定义格式标记。

formatDate

具有moment.js兼容令牌的示例 https://jsfiddle.net/armujahid/pwqhznj0/

/* A custom datestring parser */
parseDate: (date: string, format: string) => Date;

/* Allows using a custom date formatting function instead of the built-in. Generally unnecessary.  */
formatDate: (date: Date, format: string, locale: Locale) => string;

参考:我在https://github.com/flatpickr/flatpickr/issues/1549#issuecomment-537939826上的评论