我有来自JSFiddle的这段代码。
$(function() {
var datefields = $("input[type='date']");
// Log starting markup
datefields.each(function() {
var $el = $(this), $parent = $el.parent();
$parent.next().text($parent.html());
});
if (!Modernizr.inputtypes.date) {
datefields
.datepicker()
.each(function() {
// Turn ISO 8601 date string into US date string
var dateParts = this.value.split("-"),
date = $.map(dateParts, function (el) {
return !isNaN(parseInt(el, 10)) ? el : null;
}).length === 3
? new Date(dateParts[0], dateParts[1], dateParts[2])
: null;
this.type = "text";
this.value = !date ? "" :
date.getMonth() + "/" +
date.getDate() + "/" +
date.getFullYear();
});
}
// Log final results
datefields.each(function() {
var $el = $(this), $parent = $el.parent();
$parent.next().next().text($el.val())
$parent.next().next().next().text($el.attr("value"));
$parent.next().next().next().next().text($el.prop("value"));
$parent.next().next().next().next().next().text(this.getAttribute("value"));
});
});
我不知道如何让它正确地将日期转换为 MM/dd/yyyy 格式。对于非 html5 日期浏览器,它的日期为 2012-12-28,日期为 0/28/2013。它适用于 html5 浏览器。如果我用正确格式的日期字符串替换 date.getmonth()... 等,它会正确显示。所以我知道这与 getMonth() 和 getFullYear() 返回的值有关。任何帮助,将不胜感激。