javascript - 排序字符串 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;
})
此代码不起作用。
解决方案
你应该小心你的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)
})
由于您的日期将使用字母顺序正确排序。
推荐阅读
- php - 仅在前端将搜索结果限制为 WooCommerce 产品
- javascript - 如何在 Nativescript XML 中使用 set javascript 变量值
- html - 一个块元素将另一个块元素推离屏幕
- java - 将 GCP RecognizeResponse 转换为 json
- reactjs - 向嵌套的解构道具添加类型。Typescript React Redux。TS2339
- algorithm - 使用“路径减半”对不相交集进行 Find() 操作
- javascript - 在 React Native 中将变量从一个文件传递到另一个文件
- c# - Prism DelegateCommand 未在 SelectionChanged 上触发
- powershell - 带有 Selenium 的 Powershell:我无法让“滚动视图”工作
- ag-grid - Ag-Grid 行数据 .map param.value