Javascript 在解析不明确的日期时,如何强制Moment.js对月前一天进行优先级排序?

Javascript 在解析不明确的日期时,如何强制Moment.js对月前一天进行优先级排序?,javascript,date,momentjs,Javascript,Date,Momentjs,有没有一种方法可以迫使Moment.js总是假设在不明确的情况下,一天比一个月早 例如: 时刻(“2018年5月10日”)应该是2018年5月10日 时刻(“2018年8月6日”)应该是2018年8月6日 时刻(“2018年3月1日”)应该是2018年3月1日 简单使用,其中DD为月日,MM为月号,yyy为4位或2位年份 请注意,由于您的输入既不是公认的ISO 8601格式,也不是RFC 2822格式,因此您应该使用over来获得跨浏览器的一致结果 从字符串创建时刻时,我们首先检查字符串是否与

有没有一种方法可以迫使Moment.js总是假设在不明确的情况下,一天比一个月早

例如:

  • 时刻(“2018年5月10日”)
    应该是2018年5月10日
  • 时刻(“2018年8月6日”)
    应该是2018年8月6日
  • 时刻(“2018年3月1日”)
    应该是2018年3月1日
简单使用,其中
DD
为月日,
MM
为月号,
yyy
为4位或2位年份

请注意,由于您的输入既不是公认的ISO 8601格式,也不是RFC 2822格式,因此您应该使用over来获得跨浏览器的一致结果

从字符串创建时刻时,我们首先检查字符串是否与已知格式匹配,然后检查字符串是否与格式匹配,如果未找到已知格式,则返回到
新日期(字符串)

警告:浏览器不支持解析字符串。因为没有关于应该支持哪些格式的规范,所以在某些浏览器中有效的格式在其他浏览器中不起作用

对于解析ISO 8601字符串以外的任何内容的一致结果,应该使用

这是一个活的样品

[“10-05-2018”、“06/08/2018”、“01-03-2018”]。forEach((项目)=>{
console.log(瞬间(项目'DD-MM-YYYY').format();
});
简单使用,其中
DD
为月日,
MM
为月号,
yyy
为4位或2位年份

请注意,由于您的输入既不是公认的ISO 8601格式,也不是RFC 2822格式,因此您应该使用over来获得跨浏览器的一致结果

从字符串创建时刻时,我们首先检查字符串是否与已知格式匹配,然后检查字符串是否与格式匹配,如果未找到已知格式,则返回到
新日期(字符串)

警告:浏览器不支持解析字符串。因为没有关于应该支持哪些格式的规范,所以在某些浏览器中有效的格式在其他浏览器中不起作用

对于解析ISO 8601字符串以外的任何内容的一致结果,应该使用

这是一个活的样品

[“10-05-2018”、“06/08/2018”、“01-03-2018”]。forEach((项目)=>{
console.log(瞬间(项目'DD-MM-YYYY').format();
});

传递一个格式字符串?您可以(而且应该)传递一个显式格式字符串作为第二个参数。你可以检查你的日期,并根据你对数据性质的了解选择一种格式。你包括了模棱两可的情况,但没有明确的情况。同一个代码可能不适用于这两种情况。@HereticMonkey所有3个都有一些不明确,并且取决于上下文,很多。
矩('10-05-2018','DD-MM-YYYY')
。传递格式字符串?您可以(也应该)传递显式格式字符串作为第二个参数。你可以检查你的日期,并根据你对数据性质的了解选择一种格式。你包括了模棱两可的情况,但没有明确的情况。相同的代码可能不适用于这两种情况。@HereticMonkey所有3种方法在某些情况下都是不明确的,并且取决于上下文,很多。
moment('10-05-2018','DD-MM-YYYY')
。好的,我最后使用moment(String,String[])方法解决了这个问题,在这个方法中,我传递了一个应该首先尝试的格式数组。好的,我最后使用moment解决了这个问题(String,String[])方法,其中我传递了一个应该首先尝试的格式数组。