作为数组传入时,Date.js parseExact()无法解析4位数字的年份

sea*_*cus 4 javascript jquery datejs

我在date.js中缺少Date.parseExact()吗?根据api文档,我应该能够做到这一点:

Date.parseExact("10/15/2004", ["M/d/yyyy", "MMMM d, yyyy"]); // The Date of 15-Oct-2004
Run Code Online (Sandbox Code Playgroud)

也就是说,我应该能够传递一个字符串数组,其中包含“ ...日期字符串的预期格式{String}或预期格式{Array}的数组。” 但是,当我这样做时:

var d = Date.parseExact($(this).val(), ["MMddyy", "Mddyyyy", "MM/dd/yy","MM/dd/yyyy"])
Run Code Online (Sandbox Code Playgroud)

对于包含4位数字年份的日期,我返回了空值(即,与MMddyyyy和MM / dd / yyyy格式匹配)。我是否缺少某些东西,或者这是Date.js中的错误?

这是有关上下文的完整代码块:

$(function () {
     $('#FCSaleDate').change(function (e) {
         var d = Date.parseExact($(this).val(), ["MMddyy", "MMddyyyy", "MM/dd/yy","MM/dd/yyyy"])
         alert(d.toString("MM/dd/yyyy"));
     });

});
Run Code Online (Sandbox Code Playgroud)

Bla*_*ger 5

似乎date.js试图将四位数的年份解析为两位数的年份,但失败,并在失败时返回null。

为避免这种情况,请切换左右遮罩,以便它首先尝试使用四位数的遮罩:

$(function () {
     $('#FCSaleDate').change(function (e) {
         var d = Date.parseExact($(this).val(),["MMddyyyy","MMddyy","M/d/yyyy","M/d/yy"]);
         alert(d.toString("MM/dd/yyyy"));
     });

});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/mblase75/ttEqh/1/

  • 就像一个魅力……很高兴从午餐回来,发现我所有的问题都解决了!我这辈子去哪了 (2认同)