我正在根据我的要求扩展 MomentDateAdapter。当我从日历中选择一个日期时,我得到了正确的输出,但是当我在输入字段中手动输入内容时,我得到了错误的输出。
对于选定的日期,我正在使用 _moment.utc({ year, month, date }).locale(navigator.language);
将选定的值转换为 UTC 格式,但我不确定了解当用户在输入字段中搜索时如何执行相同的操作。
重现:
- 尝试从日历中选择一个值并查看控制台(注意日期已转换为 UTC)
- 现在尝试通过键入手动添加日期并查看控制台(日期未转换为 UTC)。
最佳答案
您需要将 moment
的 parse
方法调用调整为:
return moment.utc(value, parseFormat, this.locale, true);
从您的输入中获取 utc 日期。
这是您改编的 Stackblitz .
如果您通过选择器设置日期,方法 format
和 createDate
将被调用,如果您通过输入设置,方法 parse
将被调用.
关于javascript - 在输入中搜索在 Material 日期选择器中给出了不正确的日期,需要将其转换为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60774389/