原文:https://blog.csdn.net/a419419/article/details/83546233
需求:后台将一个带有日期格式(不是时间戳)的数组对象给到前端,前端打印这个数组对象的日期时需要按时间降序排列
思路:
1.先将对象中的日期字段变成时间戳,然后通过sort()来排序,接着将对象中的时间戳变成日期; 2.先给对象增加一个字段publishTimeNew,用来保存时间戳;然后通过sort()来排序publishTimeNew
虽然第二种思路多增加了一个publishTimeNew字段占用空间,但是减少了最后将时间戳变成日期的操作,所以我选择了第二个思路,下面是我的实现:
<script>
var data = [
{
id: 1,
publishTime: "2018-07-02 10:39:43"
},
{
id: 2,
publishTime: "2018-07-14 10:39:43"
},
{
id: 3,
publishTime: "2018-07-15 10:39:43"
},
{
id: 4,
publishTime: "2018-07-13 10:39:43"
}]
var dateToTime = function(str){
return (new Date(str.replace(/-/g,'/'))).getTime(); //用/替换日期中的-是为了解决Safari的兼容
}
for(var i=0; i < data.length; i++){
data[i].publishTimeNew = dateToTime(data[i].publishTime);
}
data.sort(function(a, b) {
return b.publishTimeNew> a.publishTimeNew ? 1 : -1;
});
console.log(data);
</script>