2011-12-19 68 views
4

我在date.js中缺少Date.parseExact()方法嗎?根據API文檔,我應該能夠做到這一點:Date.js parseExact()作爲數組傳遞時不解析4位數年份

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

也就是說,我應該能夠在一個字符串數組,它包含」 ......通過預期的格式字符串{}或數組預期格式{日期字符串的數組}。「然而,當我這樣做:

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

我回來含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")); 
    }); 

}); 

回答

4

看來date.js試圖解析四位數年份爲兩位數的年份,失敗,並返回失敗空。

爲了防止這種情況,各地切換您的面具,因此第一次嘗試四位數口罩:

$(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")); 
    }); 

}); 

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

+2

作品就像一個魅力...真高興午飯回來,發現所有我的問題解決了!你一生都在哪裏? – seanicus 2011-12-19 22:03:49

+1

您可以將此提交給date.js的作者,作爲bug修復的候選人(在仔細檢查以確保他沒有在文檔中提及它之後)。奇怪的是,在未將四位數字的年份解析爲兩位數的年份之後,代碼應該返回null,而不是轉到下一個掩碼。 – Blazemonger 2011-12-20 13:52:16