将时间跨度划分为 JavaScript

Divide timespan in JavaScript

我必须在 JS 中从 Kusto 查询语言重新创建一些逻辑,而且我正在为持续时间划分而苦苦挣扎。我怎样才能从两个持续时间得到商,像这样:

可以将两个时间跨度值相除得到它们的商。例如,1d / 5h 给出 4.8。这使人们能够将任何时间跨度值表示为另一个时间跨度值的倍数。例如,要用秒表示一个小时,只需将 1h 除以 1s:1h / 1s(结果很明显,3600)。

(取自https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/datetime-timespan-arithmetic

我正在使用 date-fns,但我对库很灵活。

您可以简单地定义常量。例如,如果您要使用的最小单位是 1 秒,那么您可以输入:

const
  S = 1,
  M = 60,
  H = M * 60,
  D = H * 24,
  W = D * 7;

现在像 1s 这样的术语不能神奇地成为 JavaScript 中的有效语法,但是像 (2 * D) / (10 * H) 这样的表达式可以正常工作。

(编辑答案以使用大写字母作为常量,因为这是一种常见的约定)