gpt4 book ai didi

javascript - 两个日期之间的独特 1 步差

转载 作者:行者123 更新时间:2023-12-02 23:56:05 24 4
gpt4 key购买 nike

一些背景:

我有数据点(当天 + future 5 天,以 3 小时为单位(例如下午 22 点、凌晨 1 点、凌晨 4 点、上午 7 点...)),我想将其按日期排序/分组到数组中(每个日期一个) )。

我的第一次尝试是简单地计算日期中两个日期对象的差异,例如

(datapoint.getTime() - Today.getTime())/millisecondsPerDay。这不起作用,因为我得到了几天的分数。

然后我对结果使用了 Math.ceil()Math.floor() ,但那是当然的(我一直在查看我的代码同时,所以我的大脑当时没有意识到这个缺陷)也不起作用,因为它将把当天和第二天的部分时间放入同一组(22 pm + 3 小时不是同一天,尽管差异 < 1 天)。

然后我做了一天比较

let diff = tmp.getDate() - today.getDate()
这种方法的问题是,当我在月底并且日期点在接下来的几个月中时,我得到(相对)较高的负值,我不能将其用作数组索引(例如 [0,1,2,4,5,-27])。

问题

在考虑月份变化时,如何以不同的日步计算两个日期之间的差异?

最佳答案

如果您的日期以毫秒为单位,您可以尝试此操作。将两者除以 (24 * 3600 * 1000) 并取 Math.floor() - 这将得到完整的天数。然后只需从今天的结果中减去目标结果即可。

所以,

mils_in_a_day = 24 * 3600 * 1000
today_in_days = Math.floor(today_in_mils / mils_in_a_day)
target_date_in_days = Math.floor(target_date_in_days / mils_in_a_day)
difference_in_days = target_date_in_days - today_in_days

然后要排序,您可以对每个示例执行此操作

results = {}
results[difference_in_days] = target_date_in_days

最终得到这样的哈希

{ 
'1' : [12356, 123457, 123458],
'2' : [234567, 234568, 234569]
}

其中键代表天数差异,值是原始时间戳的数组。然后,您可以对每个数组调用 sort() 以对几天内的时间戳进行排序。

我确信这不是最有效的方法,但应该可以给您带来想法。

关于javascript - 两个日期之间的独特 1 步差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com