我在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"));
});
});
答案 0 :(得分:4)
看来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"));
});
});