0
jQuery DataTablesを使用して、2つの異なる日付型のデータ列をソートしようとしています。Jqueryデータ型日付ソート
月/年と日/月/年の2つの形式がありますが、正しく並べ替えられません。
現在のコード:
function dateSorter(a, b) {
var datea = a.split("/");
var dateb = b.split("/");
if (datea[1] > dateb[1]) return 1;
if (datea[1] < dateb[1]) return -1;
if (datea[0] > dateb[0]) return 1;
if (datea[0] < dateb[0]) return -1;
if(datea.length == 2)
{
if (datea[2] > dateb[2]) return 1;
if (datea[2] < dateb[2]) return -1;
}
else
{
if(datea[1] > dateb[2]) return 1;
if(datea[2] < dateb[1]) return -1;
}
return 0;
}
以上が現在のコードで、それは月/年の形式のために働くと罰金、それらをソートしますが、両方のフォーマットと混合していません。
これは現在、日/月/年の形式から日/月をソートしますが、年を正しくソートしません。
例(現在は):
03/04/2016
12/04/2017
12/05/2015
01/2015
02/2015
02/2016
01/2018
...
それは次のようになります。
01/2015
02/2015
12/05/2015
02/2016
03/04/2016
12/04/2017
01/2018
+1、これはうまくいくと思いますが、カスタムソートプラグインの誤解にも基づいています: '-pre'と' -asc'関数と '-desc'関数の両方の使い方はあまり意味がありません。 dataTablesの自動検出型のソートに固定値を渡す '-pre'関数を持っているか、**または**演算を行う' -asc'と '-desc'メソッドがあります。両方を持つことはできません。コードを試してみると、 'date-time-odd-asc'と' date-time-odd-desc'は全く決して実行されません。私もこの誤解を抱えていました。多くの古いプラグインにもこの冗長性が含まれています。 – davidkonrad
今私は知らなかった、ありがとう@davidkonrad – annoyingmouse