JavaScript天数计算

javascript number of days calculation

本文关键字:计算 JavaScript      更新时间:2023-09-26

>我有以下代码

// code set somewhere else on page
var ad = "2012-08-29";
var dd = "2012-09-03";
//my code
var a = new Date(ad+'T00:00:00');
var d = new Date(dd+'T00:00:00');
var nn = Math.ceil( parseInt(  ( d.getTime()-a.getTime() ) / (1000*60*60*24) ) );

dd应该永远是比ad更远的未来日期。

nn应该是 addd 之间的夜晚数,因此在此示例中,nn的值应为 5(当我测试它时确实如此)。

nn正在被跟踪(放入 GA 变量和 Omniture 变量中),但大约 50% 的时间它没有得到值。 我们已经进行了三重检查,并 100% 排除了跟踪本身没有问题(我们已经检查以确保跟踪实现正确,并且 GA 和 Omniture 之间的(缺乏)数字一致)。

我们正在调查以确保addd始终是预期的 yyyy-mm-dd 格式,并且dd始终是比 ad 更远的未来日期,但假设这是闪亮的,有人能想到这个计算失败的原因吗?

编辑:澄清一下,我不认为这个计算失败了,但在排除它之前,我想要第二个(或第三个!)意见。

您在最后一行代码中缺少一个结束括号。包括最后的括号,代码运行良好,nn = 5我相信这是期望的结果。

var nn = Math.ceil( parseInt(  ( d.getTime()-a.getTime() ) / (1000*60*60*24) ) );

或者,您可以按照Bergi的建议删除parseInt(它对代码没有影响)。只要确保括号匹配,你就会没事的。