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 纪元时间并减少毫秒数。第二行从 XML 提要中获取未来的事件日期。如果我将这两个时间都输入到在线大纪元计算器中,我会得到正确的 currTime 和 dispDate 日期。但是当我将它们划分为天数(第三行)时,最终的结果是超过 30 天,这要求我使用最后一行来获得正确的天数。

现在,这已经够奇怪了。但是还有其他事情我无法弄清楚。以前是31天,现在错了,所以我把剧本改成了30天,没错。

谁能指出我做错了什么?我一生都无法弄清楚为什么会发生这种情况,我宁愿不必继续调整它。

4

2 回答 2

1

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

尝试在进行减法之前倾倒currTime和的值,dispDate看看它们是否一致。

您报告的错误表明某处代码的月份部分存在一个错误。这个月是30天,上个月是31天。错误的可能位置在event.find('UnixEpoch')调用中。

于 2009-04-23T16:46:13.880 回答
0

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

于 2009-04-23T17:58:11.087 回答