// Some randomly generated data
const row = [{
"date": "1. 9. 2020",
"time": "4:00 - 4:30"
}, {
"date": "1. 9. 2020",
"time": "12:00 - 12:30"
}, {
"date": "1. 9. 2020",
"time": "2:00 - 2:30"
}, {
"date": "3. 9. 2020",
"time": "3:00 - 3:30"
}, {
"date": "4. 9. 2020",
"time": "7:00 - 7:30"
}, {
"date": "3. 9. 2020",
"time": "2:00 - 2:30"
}, {
"date": "4. 9. 2020",
"time": "12:00 - 12:30"
}, {
"date": "1. 9. 2020",
"time": "8:00 - 8:30"
}, {
"date": "2. 9. 2020",
"time": "11:00 - 11:30"
}, {
"date": "4. 9. 2020",
"time": "6:00 - 6:30"
}, {
"date": "11. 9. 2020",
"time": "9:00 - 9:30"
}, {
"date": "12. 9. 2020",
"time": "9:00 - 9:30"
}, {
"date": "13. 9. 2020",
"time": "6:00 - 6:30"
}, {
"date": "14. 9. 2020",
"time": "4:00 - 4:30"
}, {
"date": "15. 9. 2020",
"time": "5:00 - 5:30"
}, {
"date": "16. 9. 2020",
"time": "12:00 - 12:30"
}, {
"date": "17. 9. 2020",
"time": "12:00 - 12:30"
}, {
"date": "18. 9. 2020",
"time": "5:00 - 5:30"
}, {
"date": "19. 9. 2020",
"time": "8:00 - 8:30"
}, {
"date": "20. 9. 2020",
"time": "7:00 - 7:30"
}, {
"date": "21. 9. 2020",
"time": "4:00 - 4:30"
}, {
"date": "22. 9. 2020",
"time": "10:00 - 10:30"
}, {
"date": "23. 9. 2020",
"time": "6:00 - 6:30"
}, {
"date": "24. 9. 2020",
"time": "2:00 - 2:30"
}, {
"date": "25. 9. 2020",
"time": "4:00 - 4:30"
}];
// Sort row by first date, then time (meeting start time)
console.log(
'\n\nsmallest First,',
row.sort((a, b) => datetimeToTS(a.date, a.time) - datetimeToTS(b.date, b.time)),
'\n\nlargest First,',
row.sort((a, b) => datetimeToTS(b.date, b.time) - datetimeToTS(a.date, a.time))
)
// this simply parses date & time (meeting start time) and returns a single timeStamp
function datetimeToTS(dateStr, timeStr) {
const dateMatch = dateStr.match(/(?<dd>\d+).\s*(?<mm>\d+).\s*(?<yy>\d+)/)
const timeMatch = timeStr.match(/^(?<hh>\d+):(?<mm>\d+)/)
if (dateMatch == null || timeMatch == null)
throw new Error('Could match date/time format');
const date = new Date(
dateMatch.groups.yy,
dateMatch.groups.mm-1,
dateMatch.groups.dd,
timeMatch.groups.hh,
timeMatch.groups.mm
);
return date.getTime()
}