이미 tablesorter에 내장 된 시간 분석기가 있지만 "AM"또는 "PM"을 찾습니다.
하지만 타이머 시간 (hh:mm:ss
또는 그 이름이 무엇이든)을 사용하여 정렬해야하는 것처럼 보입니다.
다음 파서 코드는 약간 복잡하게 보이지만 열에는 초 (ss
) 또는 분 (& 초 (mm:ss
)) 만 포함하는 상황을 다루어야합니다. (maxDigits
가 3
때) 파서는 기본적으로 일치하는 값을 유지하는 값에 선행 제로를 추가하기 때문에
maxDigits
설정이 필요하므로 10:30:40
는 010030040
된다. 어쨌든
, here is a demo :
$(function() {
// change maxDigits to 4, if values go > 999
// or to 5 for values > 9999, etc.
var maxDigits = 3;
$.tablesorter.addParser({
id: "times",
is: function (s) {
return false;
},
format: function (s) {
// prefix contains leading zeros that are tacked
var prefix = new Array(maxDigits + 1).join('0'),
// split time into blocks
blocks = s.split(/\s*:\s*/),
len = blocks.length,
result = [];
// add values in reverse, so if there is only one block
// (e.g. "10"), then it would be the time in seconds
while (len) {
result.push((prefix + (blocks[--len] || 0)).slice(-maxDigits));
}
// reverse the results and join them
return result.length ? result.reverse().join('') : s;
},
type: "text"
});
$('table').tablesorter({
theme: 'blue',
headers: {
3: {
sorter: 'times'
}
}
});
});
나는이 당신에게 중요한 있는지 확실하지 않습니다 만, (예를 들어 10y 30d 6h 10m
) 시대 이후에 레이블을 추가 할 수 있습니다 사용할 수있는 "시간"파서도있다 - this demo를 참조하십시오
가능한 [Jquery Tablesorter와 날짜 정렬 문제] (0120) (이 페이지는 자동으로 영어에서 번역되었습니다.) –
나는 이것을 시도했지만 만들 수 없다. 작동 – user4199101
int로 시간을 파싱하지 않고 정렬하는 이유는 무엇입니까 ??? – HoangHieu