我有一个元素数组,所有元素都具有 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 日。日/月/年
最佳答案
将排序方法更改为 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;
});
比较以毫秒为单位的时间而不是整个日期字符串
关于javascript - JQuery 按日期对元素进行排序,格式为 dd/mm/yyyy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473428/