私はフォーラムを検索しましたが、私のような状況を見つけることができなかったので、ここの誰かが助けてくれるのではないかと思いました。
日付で並べ替えたい「リリース日」の列を含む動的に生成されたテーブルがあります。問題は、この列の日付値の前に括弧内のリリース数が付いていることです。
この列で可能な値は、AM / PM指定子が付いた完全な日付とタイムスタンプで、その前に番号またはリリース、または「なし」という単語が付きます。たとえば、これらはデータテーブルの実際の値です。
None
[1] 1/24/2008 5:53:35 PM
[1] 7/31/2012 11:32:50 AM
[10] 3/29/2013 2:59:04 PM
[3] 12/17/2014 2:43:27 PM
[1] 1/9/2015 6:48:31 PM
[4] 1/9/2015 7:02:09 PM
[4] 1/30/2015 11:25:20 AM
[2] 12/27/2016 12:32:02 PM
[2] 11/16/2017 11:04:22 AM
日付の前に追加の文字があるため、組み込みの並べ替えは正しく機能しません。コードに次のパラメーターを追加して、カスタムパーサーを列に割り当てました。これは、表にリストされている3番目のパラメーターです。
headers: 2: { sorter: 'DateParser' }
そして、これが私のパーサーが先頭の文字を取り除き、日付と時刻だけを残すためのコードです:
$.tablesorter.addParser({
id: 'DateParser',
is: function(s) {
return false;
},
format: function(s) {
var datesort;
if (s != "None") {
var livereleasedate = s.split(']');
var datetime = livereleasedate[1].trim();
console.log(datetime);
datesort = datetime;
}
else {
datesort = s;
}
return datesort;
},
type: 'text'
});
残念ながら、これはまだ完全には機能しません。月と日の値は適切な順序で並べ替えられているようですが、文字列の残りの部分はそうではありません。列ヘッダーをクリックして値を並べ替えると、次のようになります。
[1] 1/9/2015 6:48:31 PM
[4] 1/9/2015 7:02:09 PM
[1] 1/24/2008 5:53:35 PM
[4] 1/30/2015 11:25:20 AM
[10] 3/29/2013 2:59:04 PM
[1] 7/31/2012 11:32:50 AM
[2] 11/16/2017 11:04:22 AM
[3] 12/17/2014 2:43:27 PM
[2] 12/27/2016 12:32:02 PM
None
これを解決する方法について何か提案はありますか?
前もって感謝します。
tablesorterのフォークの一部extractMMDDYYYY
であるparser-date-extract.js
ファイルで利用可能なパーサーを試してください。このパーサーは、元のテーブルソーターで動作するはずです...デモ
$(function() {
$('table').tablesorter({
theme: 'blue',
headers: {
0: { sorter: "extractMMDDYYYY" }
}
});
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加