我有一部分脚本可以计算事件的剩余天数:
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天,这是对的。
有谁可以指出我做错了什么?我不能为我的生活弄清楚为什么会这样,我宁愿不必继续调整它。
答案 0 :(得分:1)
从表面上看,代码看起来还不错。
在进行减法之前,请尝试转出currTime
和dispDate
的值,看看它们是否一致。
您报告的错误表明代码的月份部分出现了一个错误。这个月是30天,上个月是31天。错误的可能位置在event.find('UnixEpoch')
调用范围内。
答案 1 :(得分:0)
事件日期是否正由其他Javascript处理?如果您使用new Date(year, month, day, etc...)
格式,则月份为零,这很容易忘记。