Как реверсировать массив дат
У меня есть массив дат следующим образом:
["09/23/2019", "08/23/2019", "07/23/2019", "06/23/2019", "05/23/2019", "04/23/2019", "03/23/2019", "02/23/2019", "01/23/2019", "12/23/2018"]
Мне нужно изменить его и начать с 23.12.2018 года.
Я пытался
dates.reverseно это полностью портит формат и выводит несортированную дату. Также пробовать
dates.sort()и он сортирует даты с 01/2019 по 09/2019 и печатает 12/2018 в самом конце.
Что я уже пробовал:
stDate = 11/20/2018 etDate = 09/19/2019 var Endnow = etDate.clone(); var Endday = etDate.date(); while(Endnow.isAfter(stDate)) { var month = Endnow.clone().endOf("month"); if (Endnow.date() < Endday && Endday <= month.date()) { Endnow.date(Endday); } dates.push(Endnow.format("MM/DD/YYYY")); dates.reverse(); dates.sort(); Endnow = Endnow.clone().subtract({"months": 1}); }
Daniel Pfeffer
Я не понимаю, почему dates.reverse() не дает вам того, что вы хотите. Он меняет порядок элементов массива, не заботясь о том, каковы их значения. Массив в порядке возрастания станет массивом в порядке убывания.
Если Ваш массив не в порядке, вам придется написать пользовательскую функцию сортировки. Как вы уже обнаружили, даты в американском формате не могут быть отсортированы так, как если бы они были строками.