Kiw*_*nic 2 javascript momentjs
我正在对2013年12月36日(DD/MM/YYYY),2013年2月15日(DD/MM/YYYY)或以下具体案例的无效日期进行验证:
2009年2月29日(DD/MM/YYYY)无效,因为2009年不是闰年
代码是:
var momentAcceptedDateInputs = ['D/M/YY', 'DD/M/YY','D/MM/YY','DD/MM/YY'
, 'D/M/YYYY', 'DD/M/YYYY', 'D/MM/YYYY', 'DD/MM/YYYY',
'D MMM YY', 'DD MMM YY', 'D MMM YYYY', 'DD MMM YYYY'];
var parsedDate = moment(val, momentAcceptedDateInputs);
return parsedDate.isValid();
Run Code Online (Sandbox Code Playgroud)
输入值:
29/02/2009
对象的预期返回值:
对象的实际返回值:
知道怎么解决这个问题吗?
我使用的是定制版本的moment.js版本:2.4.0
我定制的唯一规则是这样,所以我怀疑它会导致上面报告的错误:
datePartArray[YEAR] = toInt(input) +
(toInt(input) > (moment(moment()).format("YY")) ? 1900 : 2000);
Run Code Online (Sandbox Code Playgroud)
默认情况下,Moment的解析器非常宽容.
例如:
moment("29/02/2009",'D/M/YY').isValid() // true, because it uses year "20"
Run Code Online (Sandbox Code Playgroud)
您可以通过传递布尔值true来更改此值
moment("29/02/2009",'D/M/YY', true).isValid() // false, due to the year digits
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |