Как получить разность из значений input типа datetime-local в днях и часах?

У меня есть две переменные со значениями "2022-03-15T10:39" и "2022-03-12T10:43" нужно получить разность их значений в днях и часах, подскажите как ?


Ответы (1 шт):

Автор решения: Yakov Botov

const date1 = dayjs("2022-03-15T10:39");
const date2 = dayjs("2022-03-12T10:43");

const getHumanizedValue = (diffInHours) => {
  const HOURS_IN_DAY = 24;

  const days = Math.floor(diffInHours / HOURS_IN_DAY);
  const hours = diffInHours % HOURS_IN_DAY;

  return `${days} days and ${hours} hours`;
};

console.log(getHumanizedValue(date1.diff(date2, "hour")));
<script src="https://unpkg.com/[email protected]/dayjs.min.js"></script>

Предлагаю воспользоваться библиотекой dayjs. В dayjs можно легко высчитать разницу между датами с помощью метода diff (ссылка на нужный раздел библиотеки: https://day.js.org/docs/en/display/difference)

Так как для вопроса есть метка react, я создал песочницу на react, в которой можно посмотреть на решение изнутри: https://codesandbox.io/s/headless-frost-h87g48?file=/src/App.js

→ Ссылка