@DedliParkurKillerDark

Как сделать сортировку дат в toLocaleString виде?

Есть у меня массив
const arr = ["13.11.2022, 09:43:27", "13.11.2022, 09:45:27", "13.11.2022, 09:53:28", "13.11.2022, 09:33:29"]

И тут проблема: Я знаю как сортировать массивы дат, точнее я уже создавал вопросы по этому поводу и мне помогли, но с датами в формате toLocaleString это не работает.
Для сортировки дат в массиве я использую такой метод:
const arr = ["13.11.2022, 09:43:27", "13.11.2022, 09:45:27", "13.11.2022, 09:53:28", "13.11.2022, 09:33:29"]
arr.sort((a, b) => {
  return new Date(a) - new Date(b)
})

И он не работает с таким форматом дат
И, кстати, дата в этом формате в отличие от даты в формате toISOString или toUTCString не конвертируется в другие форматы дат. Я про:
new Date("13.11.2022, 09:43:27").toISOString() //происходит ошибка "Invalid Date"
new Date("2022-11-13T09:43:27").toUTCString() //конвертируется в "Sun, 13 Nov 2022 06:43:27 GMT"
new Date("2022-11-13T09:43:27").toLocaleString() // конвертируется в "13.11.2022, 09:43:27"
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const sortedArr = arr
  .map(n => [ n, +new Date(n.replace(/(\d+)\.(\d+)\.(\d+),/, '$3-$2-$1')) ])
  .sort((a, b) => a[1] - b[1])
  .map(n => n[0]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы