Можно ли рассчитать начало «текущего получаса» в Луксоне? - PullRequest
1 голос
/ 29 марта 2020

Я использую Luxon и хотел бы рассчитать начало текущей получаса. В настоящее время, чтобы получить Luxon DateTime, я делаю:

const startOfHalfHour = millis => DateTime.fromMillis(millis - (millis % (30 * 60 * 1000)))

Мне не хватает более простого, более идиоматического c способа? DateTime#startOf() не имеет единицы "полчаса".

1 Ответ

1 голос
/ 02 апреля 2020

В Luxon нет полчаса, поэтому нет встроенного способа сделать это. Я бы сделал что-то вроде этого:

DateTime.prototype.startOfHalfHour = function() {
  let result = this.startOf("hour");
  if (this.minute >= 30)
    result = result.set({ minute: 30 });
  return result;
};

var dt = DateTime
  .fromISO("2020-05-25T10:35:12")
  .startOfHalfHour();

console.log(dt.toISO());
...