我知道有很多类似的问题,但我能找到的所有例子都在询问如何获得绝对天数差异。
如何在Javascript中获取日期(纪元秒)与当前时间之间的相对天数。例如
function getDaysDelta(secs) {
var hoursDelta = Math.ceil((secs - NOW_SECS) / 3600);
????
}
如果它现在是22:00并且提供的值是第二天的04:00,我希望该函数返回1,因为差异中有1天。同样,如果它现在是04:00,并且提供的值是前一天的22:00,我希望该函数返回-1。如果提供的值在今天某个时间内下降,它应该返回0.
我想避免引入怪物依赖,所以纯JS更可取,虽然我已经依赖jQuery(v2),因此涉及到的解决方案很好。
答案 0 :(得分:0)
这个怎么样?
let dayDifference = Math.floor((secs.getTime() - NOW_SECS.getTime()) / 1000 / 3600 / 24);
secs 和 NOW_SECS 都是javascript日期。
为了清晰起见,最好在日期计算之前使用getTime()
。 getTime()
以毫秒为单位返回unix时间戳。 Javascript在减去日期时隐式执行,但如果要将(+)秒/小时/ ...添加到日期则会失败。它会将日期转换为字符串并连接。