JSFiddle - React, Tailwind, and code Playground
JavaScript
const data = [{
date: '01.01.2010',
name: 'asd'
}, {
date: '04.05.2017',
name: 'asd'
}, {
date: '11.12.910',
name: 'asd'
}, {
date: '31.12.99',
name: 'asd'
}, {
date: '02.01.2010',
name: 'asd'
}, {
date: '01.02.2010',
name: 'asd'
}, {
date: '01.01.2010',
name: 'asd'
}];
/**
* @param {string} val - `DD.MM.YYYY`
*/
function parseDate(val) {
let [dd, mm, yy] = val.split('.')
// Values from 0 to 99 map to the years 1900 to 1999.
// All other values are the actual year
let result = new Date()
result.setFullYear(yy)
result.setMonth(mm-1)
result.setDate(dd)
result.setHours(0,0,0,0)
return result
}
let sorted = data.slice().sort((left, right) => {
let leftKey = parseDate(left.date)
let rightKey = parseDate(right.date);
return leftKey.getTime() - rightKey.getTime()
});
console.log(parseDate('31.12.99'))
console.log(data, sorted);