首页 文章

Javascript Unix Epoch Time Strangeness

提问于
浏览
0

我有一部分脚本可以计算事件的剩余天数:

var currTime = Math.round(new Date().getTime() / 1000.0);
var dispDate = event.find('UnixEpoch').text();
var diffDate = (dispDate - currTime) / 86400;
var dateRound = Math.round(diffDate) - 30;

第一行获取当前的Unix Epoch时间并削减毫秒 . 第二行从XML提要中获取未来事件日期 . 如果我将两次都放入Epoch计算器在线,我会得到currTime和dispDate的正确日期 . 但是当我将它们分成几天(第三行)时,最终结果会超过30天,这要求我使用最后一行来获得正确的天数 .

现在,这太奇怪了 . 但还有其他事情发生,我无法弄清楚 . 它曾经过了31天,现在这是错的,所以我把脚本改为30天,这是对的 .

谁能指出我做错了什么?我不能为我的生活弄清楚为什么会这样,我宁愿不必继续调整它 .

2 回答

  • 0

    从表面上看,代码看起来还不错 .

    尝试在进行减法之前倾销 currTimedispDate 的值,看看它们是否一致 .

    您报告的错误表明代码的月份部分出现了一个错误 . 这个月是30天,上个月是31天 . 错误的可能位置在 event.find('UnixEpoch') 调用范围内 .

  • 1

    事件日期是否由其他Javascript处理?如果使用 new Date(year, month, day, etc...) 格式,则月份为零,这很容易忘记 .

相关问题