Joe*_*tto 2 datetime timestamp date 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
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是moment().format("YYYY-MM-DD HH:MM:SS");给了我正确的数据,但输出$("#entry_date_time").val()等于
2017201720172017-JanJan-SatSat 0000:JanJan:0000
而不是我提供的预期格式。
关于可能导致此问题的任何想法都很棒,感谢您的帮助!
Flatpickr 有自己的格式化令牌,与 moment 支持的令牌不同。但好处是您可以使用parseDate和formatDate配置选项来支持自定义格式标记。
/* 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;
Run Code Online (Sandbox Code Playgroud)
moment.js 兼容令牌的示例 https://jsfiddle.net/armujahid/pwqhznj0/
const fp = flatpickr(".date", {
altInput: true,
dateFormat: "YYYY-MM-DD",
altFormat: "DD-MM-YYYY",
allowInput: true,
parseDate: (datestr, format) => {
return moment(datestr, format, true).toDate();
},
formatDate: (date, format, locale) => {
// locale can also be used
return moment(date).format(format);
}
});
Run Code Online (Sandbox Code Playgroud)
参考:我的评论https://github.com/flatpickr/flatpickr/issues/1549#issuecomment-537939826
更新:此代码片段也已添加到官方文档中
| 归档时间: |
|
| 查看次数: |
7835 次 |
| 最近记录: |