получить даты в диапазоне в рескрипте и летнее время

У меня есть календарь на моем сайте, который принимает дату начала и дату окончания и передает их в функцию, которая вычисляет даты между ними. давай сидим, у нас есть дата начала Mon Mar 29 2021 03:00:00 GMT+0300 (Eastern European Summer Time) и дата окончания Mon Apr 05 2021 03:00:00 GMT+0300 (Eastern European Summer Time); эта функция должна вернуть [«30/3/2021», «31/3/2021», «1/4/2020», «2/4/2020», «3/4/2020», «4/4 / 2020 "]

      let getDatesInRange = (start, end) => {
  let dates = ref([])
  let current = ref(start)

  while current.contents <= end {
    dates := dates.contents->Js.Array2.concat([current.contents->toUTCDateString])
    current := {
        let date = current.contents->toUTCDateString->Js.Date.fromString
        date->Js.Date.setDate(date->Js.Date.getDate +. 1.0)->ignore

        date
      }
  }

  dates.contents
}

и это функция toUTCDateString, которая принимает дату и дает ее строковую версию

      let toUTCDateString = date => {
  let date = date->External.unSafeCastToJsObject

  date["toISOString"]()["split"]("T")[0]
}

Эти функции работали нормально до тех пор, пока время не изменилось на летнее время; мы получаем час, так что день застрял там по какой-то причине. Любой орган сталкивался с этой проблемой раньше, и кто будет решать такие проблемы со временем?

0 ответов

Другие вопросы по тегам