Краткий ответ: ваш ввод превышает ограничения встроенных в JavaScript целочисленных типов и типов Date.Чтобы выполнить вычисления с такими большими числами, используйте тип BigInt
.(Большинство библиотек дат, таких как MomentJS, не поддерживают BigInt
, одной из причин является то, что обычные целые числа предоставляют разумный диапазон дат.)
Самое большое целое число, которое может быть представлено встроенным JavaScriptцифры 9,007,199,254,740,991 .Числа с плавающей запятой идут намного выше, но, вероятно, не имеют смысла для этого типа использования (было бы слишком много пробелов с плавающей запятой).
Ваш ввод: 324 523 546 345 644 563 456 345 на много порядков больше, чем JavaScriptвстроенная поддержка целых чисел.Это даже до рассмотрения дополнительных порядков после преобразования месяцев в миллисекунды.
Честно говоря, я удивлен, что результат был 0, а не NaN
.
Кроме того, я считаю, что MomentJS внутреннеиспользует встроенный JavaScript тип даты.Максимальная дата составляет около год 275,760 .Ваш вклад потребует поддержки в течение года, в прошлом году.Фактически, ваш вклад превышает возраст вселенной .
Если вам действительно нужно сделать такой расчет, вы можете использовать BigInt
с.Возможно, вам придется выполнять вычисления вручную, потому что я не думаю, что какая-либо связанная со временем библиотека будет поддерживать такие большие даты.