Javascript 在解析不明确的日期时,如何强制Moment.js对月前一天进行优先级排序?
有没有一种方法可以迫使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来获得跨浏览器的一致结果 从字符串创建时刻时,我们首先检查字符串是否与
应该是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[])方法,其中我传递了一个应该首先尝试的格式数组。