首页 > 解决方案 > 排序字符串 Json 日期

问题描述

我得到这样的日期值:"/Date(1560458281000)/"来自对象数组。我只想按降序和升序排列这些日期。我对纯 JavaScript 和/或 moment.js 的任何示例持开放态度。顺便说一下,小时和分钟很重要。我会像这样展示它2014/10/29 4:50

let dateSorted = this.props.myObj.sort(function(a,b) {
  sorted= new Date(Number(a.Date.replace(/\D/g, ''))) - new 
  Date(Number(b.Date.replace(/\D/g, '')))
  return sorted;
})

此代码不起作用。

标签: javascriptjsondatemomentjs

解决方案


你应该小心你的sorted变量,它缺少const / let初始化程序,我会写:

let dateSorted = this.props.differences.sort(function(a,b) {
  const timeA = Number(a.Date.replace(/\D/g, ''))
  const timeB = Number(b.Date.replace(/\D/g, ''))

  return timeA - timeB;
})

而且由于您的日期是时间戳格式,您甚至不需要将它们转换为日期来比较它们,您可以直接减去数字。

一种更简单的方法是使用localeCompare

let dateSorted = this.props.differences.sort(function (a, b) {
  return a.Date.localeCompare(b.Date)
})

由于您的日期将使用字母顺序正确排序。


推荐阅读