我有一系列元素都具有dueDate属性。
但是,日期是dd / MM / yyyy格式。
<div class="taskItem" dueDate="02/02/2016"></div>
<div class="taskItem" dueDate="20/02/2016"></div>
<div class="taskItem" dueDate="01/02/2016"></div>
当我进行以下排序时;
$('.taskItem').sort(function (a, b) {
var contentA = Date.parse($(a).attr('dueDate'));
var contentB = Date.parse($(b).attr('dueDate'));
console.log(contentA)
return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
})
我在20/02/2016的日期上收到错误。 2016年2月20日.dd / MM / yyyy
答案 0 :(得分:0)
将排序方法更改为demo
function toDate(value)
{
var from = value.split(" ")[0].split("/");
return (new Date(from[2], from[1] - 1, from[0]));
}
$('.taskItem').sort(function (a, b) {
var contentA = toDate($(a).attr('dueDate')).getTime(); //assuming that attribute value will always be a valid date
var contentB = toDate($(b).attr('dueDate')).getTime();
console.log(contentA);
return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
});
比较时间(以毫秒为单位)而不是整个日期字符串