2012-05-31 37 views
1

我有使用javascript一个奇怪的问题:放养新的Date()时的getTime()在一定的变量,它变为0javascript日期不能存储

console.log(new Date().getTime()); // Shows the timestamp 
    p.channels[p.chann].startTime = new Date().getTime(); 
    console.log(p.channels[p.chann].startTime); // Shows 0 

变量p.channels [p.chann] .startTime完全存在(否则会显示错误...)

有谁知道这个问题可能来自哪里? Oo

+0

如果你把其他东西存储到变量中,比如'1'或''foo“',它会起作用吗? – JJJ

+3

是'p'an对象,'p.channels'数组(或对象),'p.chan'是一个有效的索引(或键)和'p.channels [p.chann]'对象吗? – fcalderan

+0

工程对我来说很好http://jsfiddle.net/s6NgS/ – Andreas

回答

2

问题是,我的变量是一个音频元素,我可以在其中创建startTime值,但它被设置为0,并且不能设置为其他值。

0

我创建了一个JS Fiddle来表明它的工作原理。

p = {}; 
p.channels = []; 
p.chann = 0; 
p.channels[p.chann] = {}; 

p.channels[p.chann].startTime = new Date().getTime(); 

document.write(p.channels[p.chann].startTime); 

这个失败的可能的原因将是p.chann已设置和提取之间改变的值,或p.channels[p.chann]没有被设置为对象(你可以通过注释掉行,其中p.channels[p.chann] = {};进行测试。

0

由于此代码有效,唯一的问题可能是当您检索值时存在p.channels[p.chann].startTime,或者可能是在您正在读取不同值的实际代码中(也许p.chann更改,因为您处于循环或你创建了一个闭包......这很难说)

var p = { 
    chann : 0, 
    channels : [ 
     { startTime : 0 } 
    ]  
}; 

p.channels[p.chann].startTime = new Date().getTime(); 
console.log(p.channels[p.chann].startTime); // Shows the value