0
我有這個代碼JSFiddle。jquery更改日期fromat從8601到美國標準
$(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日期瀏覽器提供了0/28/2013的日期。它適用於html5瀏覽器。如果我使用正確格式的date.getmonth()...等替換日期字符串,它會正確顯示。所以我知道它與getMonth()和getFullYear()返回值有關。任何幫助,將不勝感激。
謝謝,沒有意識到。然而,我原來的日期有一個月的12,它輸出0,所以加1仍然只有我1月,而不是預期的12月。 – Xaxum
然後,您可能需要用'parseInt(dateParts [1]) - 1'來初始化Date對象的月份部分。我會更新我的答案。 –
你知道你爲什麼需要做-1嗎?當我將日期部件記錄到控制檯時,我會得到每個部件的正確值。但是,當日期被創建時,它會到1月份。如果我按-1的方式指出它給出了正確的日期,但我不明白爲什麼-1需要在'12'上執行parsInt時它應該給我12而不是13。 – Xaxum