我有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格式。截止日期为2012-12-28,它为非html5日期和进行的日期2013年3月28日。它适用于html5浏览器。如果我使用正确格式的日期字符串替换date.getmonth()... etc,它会正确显示。所以我知道它与值getMonth()和getFullYear()有关。任何帮助将不胜感激。
答案 0 :(得分:1)
getMonth()
从零开始。创建它时,您需要将值减1:
? new Date(dateParts[0], parseInt(dateParts[1]) - 1, dateParts[2])
然后将值加1再次显示:
this.value = !date ? "" :
(date.getMonth() + 1) + "/" +
date.getDate() + "/" +
date.getFullYear();
有关Mozilla开发网络上的getMonth()
,请参阅this article。