Методы сортировки массива дат строк ISO в JavaScript

Чтобы отсортировать массив дат строк ISO в порядке возрастания или убывания, вы можете использовать следующие методы:

  1. Array.sort():

    • Преобразуйте даты строк ISO в объекты Date с помощью функции new Date().
    • Используйте метод Array.sort() со специальной функцией сравнения для сортировки дат.
    • При необходимости преобразуйте отсортированные объекты Date обратно в строковый формат ISO.

    Пример:

    const dates = ["2023-08-15T12:30:00Z", "2023-07-10T08:00:00Z", "2023-09-05T17:45:00Z"];
    const sortedDates = dates.sort((a, b) => new Date(a) - new Date(b));
    console.log(sortedDates);
  2. Intl.DateTimeFormat():

    • Преобразуйте даты строк ISO в объекты Date с помощью функции new Date().
    • Используйте конструктор Intl.DateTimeFormat() для форматирования дат в зависимости от языкового стандарта.
    • Отсортируйте отформатированные даты с помощью Array.sort().

    Пример:

    const dates = ["2023-08-15T12:30:00Z", "2023-07-10T08:00:00Z", "2023-09-05T17:45:00Z"];
    const sortedDates = dates.sort((a, b) => new Date(a) - new Date(b))
                           .map(date => new Intl.DateTimeFormat('en-US').format(new Date(date)));
    console.log(sortedDates);
  3. Moment.js:

    • Используйте библиотеку Moment.js для анализа и управления датами строк ISO.
    • Сортируйте даты с помощью метода sort(), предоставляемого Moment.js.

    Пример:

    const moment = require('moment');
    const dates = ["2023-08-15T12:30:00Z", "2023-07-10T08:00:00Z", "2023-09-05T17:45:00Z"];
    const sortedDates = dates.sort((a, b) => moment(a).diff(moment(b)));
    console.log(sortedDates);