4

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

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

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

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

1 回答 1

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

});

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

于 2011-12-19T21:26:03.463 回答