Javascript Unix Epoch Time Strangeness

时间:2009-04-23 16:40:04

标签: javascript unix datetime time epoch

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

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 :(得分:1)

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

在进行减法之前,请尝试转出currTimedispDate的值,看看它们是否一致。

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

答案 1 :(得分:0)

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