Moment API isValid似乎只支持格式' L'对于本地是' en':
区域设置设置为' en'
moment(new Date()).locale('en').format('L') //"04/27/2016"
moment('04/27/2016', 'L', true).isValid() //true
本地设置为' zh-cn':
moment(new Date()).locale('zh-cn').format('L') //"2016-04-27"
moment('2016-04-27', 'L', true).isValid() //false, why here is false?
因为我不想硬编码MM-DD-YYYY'为' zh-cn'在这里,还有其他好方法吗?
答案 0 :(得分:4)
像这样设置区域设置只会影响moment
的当前实例,而不会影响将来的任何实例。将来的实例再次使用默认语言环境,在您的情况下,'L'
格式不是YYYY-MM-DD
格式。
您可以全局设置区域设置:
moment.locale('zh-cn');
moment(new Date()).format('L') // 2016-04-27
moment('2016-04-27', 'L', true).isValid() // true
或者为每个实例指定语言环境,包括用于解析的实例:
moment(new Date()).locale('zh-cn').format('L') // 2016-04-27
moment('2016-04-27', 'L', 'zh-cn', true).isValid() // true