ここで間違っているのは本当にわかりません。JavaScriptの日付関数から無効な日付が表示されることがあります
私は日付値でテーブルをソートするためにいくつかのJavaScriptを持っている:今ここ
function sortByDate() {
if (jQuery("#web-orders .data-table tbody").length > 0) {
var tbody = document.querySelector("#web-orders .data-table tbody");
var rows = [].slice.call(tbody.querySelectorAll("tr"));
}
if (jQuery("#store-orders .data-table tbody").length > 0) {
var tbodyStore = document.querySelector("#store-orders .data-table tbody");
var rowsStore = [].slice.call(tbodyStore.querySelectorAll("tr"));
rowsStore.forEach(function (entry) {
rows.push(entry);
});
}
rows.sort(function (a, b) {
console.log("a.cells[2].innerHTML = " + a.cells[2].innerHTML);
console.log("b.cells[2].innerHTML = " + b.cells[2].innerHTML);
a = new Date(Date.parse(a.cells[2].innerHTML));
b = new Date(Date.parse(b.cells[2].innerHTML));
console.log("a = " + a);
console.log("b = " + b);
return a - b;
});
rows.forEach(function (v) {
tbody.appendChild(v); // note that .appendChild() *moves* elements
});
}
は、無効な日付とコンソール出力の一部である:これはあるかもしれない理由
a.cells[2].innerHTML = 28/11/2017 1:49:37 PM
b.cells[2].innerHTML = 5/09/2017 6:27:35 AM
a = Invalid Date
b = Tue May 09 2017 06:27:35 GMT+0930 (Cen. Australia Standard Time)
a.cells[2].innerHTML = 28/11/2017 1:49:37 PM
b.cells[2].innerHTML = 24/09/2017 6:12:48 PM
a = Invalid Date
b = Invalid Date
誰もが知っていますハプニング?それは私に困ってしまった。
「5/09/2017」が 'May 09 2017'に解析された場合、' 28/11/2017'はどのように解析されますか? ;) –
日付が厳密な形式でない限り、JavaScript環境に依存して一貫性のある日付を解析することはできません。最も安全なことは、あなたの日付文字列を解析するためにあなた自身の明示的なフォーマットでMomentのようなものを使うことです。 – Pointy
@le_mああああ、なぜ私はそれが私を超えているのを見ていない、私は当時のうちの1つを持っていると思います。私の日付形式を 'dd/MM/yy'から' MM/dd/yyyy'に変更しました。ありがとう:) –