我想以天,小时和分钟为单位来获取两个日期之间的差额。我尝试使用1970年1月1日以来的ms来做到这一点:
var d = new Date()
daydiff = ~~((d.getTime()-(Date.parse(SavedReminders[i][7]))) / 86400000);
hourdiff = ~~((d.getTime() - (Date.parse(SavedReminders[i][7]))) / 3600000);
mindiff = ~~((d.getTime() - (Date.parse(SavedReminders[i][7]))) / 60000);
其中SavedReminders [i] [7] = 2015-04-06T17:34:00
但是,这给出了一些奇怪的结果,如果我在同一小时(下午5点)进行测试,那么它似乎可以正常工作,但是当它变成下午6点或晚上7点时,我开始得到错误的结果,好像没有考虑几个小时。
例如,当当前时间是“ 2015-04-06T19:26:00”,并且我运行此代码时,它将给出结果:
d.getTime()= 1428344775364
Date.parse(SavedReminders [i] [7] = 1428341640000
daydiff = 0
hourdiff = 0
mindiff = 52
最佳答案
使用~~此技术使用非常大的数字可能会出现整数溢出问题? (不知道除法运算会在右边产生多少个小数点...)
使用传统的Math.floor时是否会遇到相同的错误?
daydiff = Math.floor((d.getTime()-(Date.parse(SavedReminders[i][7]))) / 86400000);