我在JavaScript中有一个JSON对象,我正在尝试按日期排序对象。
fileListObj[id] = date;
output : "#HIDDEN ID": "16/12/2013"
如何按最近日期对对象进行排序?
我只知道如何在php
中执行此操作答案 0 :(得分:0)
fileListObj.sort(function(a,b) {
return moment(b, 'DD/MM/YYYY').valueOf() - moment(a, 'DD/MM/YYYY').valueOf();
})
答案 1 :(得分:0)
首先,您需要编写/获取日期解析器。使用Javascript的原生Date
对象为unreliable for parsing raw strings。
然后你会想要使用Array.prototype.sort()
:
function parseDate(input) {
var parts = input.split('/');
return new Date(parts[2], parts[1]-1, parts[0]);
}
function sortAsc(a,b)
{ return parseDate(a.date) > parseDate(b.date); }
function sortDesc(a,b)
{ return parseDate(a.date) < parseDate(b.date); }
list.sort(sortAsc);
答案 2 :(得分:0)
这是一个工作示例,排序表将包含ISO格式日期
var dates = ["12/05/2012", "09/06/2011","09/11/2012"]
var sorted=[];
for(var i=0, i= dates.length;i++){
var p = dates[i].split(/\D+/g);
sorted[i]= new Date(p[2],p[1],p[0]);
}
alert(sorted.sort(function(a,b){return b-a}).join("\n"));
要获得相同的输入格式,您可以使用此功能:
function formatDate(d)
{
date = new Date(d)
var dd = date.getDate();
var mm = date.getMonth()+1;
var yyyy = date.getFullYear();
if(dd<10){dd='0'+dd}
if(mm<10){mm='0'+mm};
return d = dd+'/'+mm+'/'+yyyy
}
sorted.sort(function(a,b){return b-a})
formatSorted = []
for(var i=0; i<sorted.length; i++)
{
formatSorted.push(formatDate(sorted[i]))
}
alert(formatSorted.join("\n"));