【发布时间】:2021-12-17 07:35:13
【问题描述】:
我有一个 Interval[],我想知道哪个是最大的间隔。我认为将它们转换为持续时间然后进行比较可能会奏效,但我在 luxon 文档中找不到合适的方法,而且 Google 让我无处可去。
如何比较持续时间或间隔?谢谢!
【问题讨论】:
标签: javascript datetime comparison luxon
我有一个 Interval[],我想知道哪个是最大的间隔。我认为将它们转换为持续时间然后进行比较可能会奏效,但我在 luxon 文档中找不到合适的方法,而且 Google 让我无处可去。
如何比较持续时间或间隔?谢谢!
【问题讨论】:
标签: javascript datetime comparison luxon
一种方法是您可以将您拥有的日期转换为 ISO 字符串,然后使用 diff 来获得差异。 https://moment.github.io/luxon/#/math?id=diffs.
var end = DateTime.fromISO('2017-03-13');
var start = DateTime.fromISO('2017-02-13');
var diffInMonths = end.diff(start, 'months');
diffInMonths.toObject(); //=> { months: 1 }
这就是他们在该文档中显示的示例。
您还可以将日期转换为 unix 时间戳并减去它们以获得差异,然后将其转换回日期。
如果您不知道“Luxon”是(现已弃用)“moment”包的改进包,这就是文档仍在使用 moment 的原因。
如果需要更多帮助,我想了解更多关于您到底在努力解决什么问题并查看您已经尝试过什么的信息。
【讨论】:
var dur = Duration.fromObject({ months: 4, weeks: 2, days: 6 }),你可以使用dur.as('seconds') ,你可以根据你的需要使用1 hour = 60 * 60 * 1000 milliseconds,你可以很容易地减去或比较持续时间来找出天/毫秒/什么的差异。你可以使用let diff = interval1.diff(interval2, 'hours')之类的东西。
yourInterval.length() 将为您提供以毫秒为单位的间隔长度。所以你只需要找到结果最高的区间。
【讨论】: