Если даты хранятся в виде строк, то сортировка их по строкам будет алфавитизировать их к короткому дню. Если вы преобразуете их в объекты Date перед сортировкой, это должно сработать:
loaddata() {
this.$db.DBData.find({}).exec((err, docs) => {
let newDocs = docs.map((doc)=>{
doc.pubDate = new Date(doc.puDate).valueOf();
});
newDocs.sort((a, b)=>{
return a.pubDate - b.pubDate; //you may have to switch the order
});
this.Data = newDocs;
});
}
Другим решением было бы сохранить значение Date вместо строкового представления. Например, даты, которые вы указали выше, переводятся в:
[1530296100000, 1529893320000, 1530241800000, 1530394543000]
Затем их сортировка приводит к:
[1529893320000, 1530241800000, 1530296100000, 1530394543000]
Преобразовано обратно это:
["Sun Jun 24 2018 22:22:00 GMT-0400 (Eastern Daylight Time)",
"Thu Jun 28 2018 23:10:00 GMT-0400 (Eastern Daylight Time)",
"Fri Jun 29 2018 14:15:00 GMT-0400 (Eastern Daylight Time)",
"Sat Jun 30 2018 17:35:43 GMT-0400 (Eastern Daylight Time)"]
Вы можете видеть, как они сортируются по порядку сейчас и обратно в их строковом представлении. Извините за преобразование часового пояса. Я запустил этот пример в консоли браузера, чтобы убедиться, что он работает.