JavaScript JSON关联对象键和值都作为日期时间戳

时间:2015-03-31 22:05:07

标签: javascript php

我的变量date_mplayer只存储一个PHP生成的time()标记。我需要创建一个带有键/值对的数组,其中键和值最初都是来自date_mplayer的相同时间戳。

目前我得到了什么:

var md = {date_mplayer:date_mplayer};
localStorage.setItem('date_mplayer', JSON.stringify(md));

如果我console.log(localStorage);我得到......

date_mplayer "{"date_mplayer":1427837963}"

我需要的东西应该是:

date_mplayer "{1427837963:1427837963}"

背景:这是我根据每个标签的指定日期将功能命令传递给选项卡的方式。使用选项卡键表示的更新时间戳重建JSON对象的每X个秒数;标签在一段时间内未更新几秒钟就会删除其密钥(以防止永久增长,直到达到浏览器存储限制)。

没有框架。

2 个答案:

答案 0 :(得分:1)

var md = {};
md[date_mplayer] = date_mplayer;
localStorage.setItem('date_mplayer', JSON.stringify(md));

答案 1 :(得分:1)

当用对象文字语法编写时,对象键是非动态的;也就是说,你不能在他们的位置使用变量。键将按字面意思命名您在那里键入的内容,所以:

var foo = 'bar', obj = {foo: foo};
obj.foo; //bar
obj.bar; //undefined

相反,要设置动态密钥名称,您需要在创建对象后通过方括号语法设置密钥,并将密钥名称作为字符串传递:

var foo = 'bar', obj = {};
obj[foo] = foo;
obj.bar; //bar