我有以下代码
// 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
应该是ad
和dd
之间的之夜的数量,因此在此示例中,{{1}的值应为5 (当我测试时它确实如此)。
nn
(放入GA变量,以及Omniture变量),但大约50%的时间没有获得值。我们进行了三重检查,并且100%排除跟踪本身不存在问题(我们已经检查以确保跟踪实施是正确的,并且GA(Omniture)之间的(缺少)数字是一致的)。
我们正在调查以确保nn
和ad
始终是预期的yyyy-mm-dd格式,dd
始终是一个比{{1}更远的日期},但假设那是闪亮的,有人能想到这个计算失败的原因吗?
编辑:澄清一下,我认为这个计算没有失败,但在裁定之前我想要第二个(或第三个!)意见。
答案 0 :(得分:1)
您在最后一行代码中缺少一个结束语。包括最终的parens,代码运行正常,nn = 5
我相信这是理想的结果。
var nn = Math.ceil( parseInt( ( d.getTime()-a.getTime() ) / (1000*60*60*24) ) );
或者,您可以删除Bergi建议的parseInt(它对代码没有影响)。只要确保parens匹配,你会没事的。