I am getting date values like that: "/Date(1560458281000)/"
from an array of objects. I just want to order these dates by descending and ascending. I am open to any examples with pure JavaScript and/or moment.js By the way, hours and minutes are important. I will show it like 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; })
This code doesn’t work.
Advertisement
Answer
You should be carefull with your sorted
variable, it’s missing the const / let
initializer, I would have written:
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; })
And since your dates are in timestamp format you don’t even need to convert them to date to compare them, you can substract the numbers dicrectly.
A simpler way would be to use localeCompare
:
let dateSorted = this.props.differences.sort(function (a, b) { return a.Date.localeCompare(b.Date) })
Since your date would be properly ordered by using the alphabetical order.