在JSON对象中存储`new Date()`

时间:2016-02-05 13:43:38

标签: javascript json

我有以下字段验证器对象:

{ type:'date', 'min':new Date() }

我希望我可以将new Date()存储为JSON中的表达式,并在解析时执行它

4 个答案:

答案 0 :(得分:2)

保存时间戳:

{ type:'date', 'min':(new Date()).getTime() }

阅读之后:

var result = JSON.parse('{ "type":"date", "min":1234567 }');
result.date = new Date(result.min);

答案 1 :(得分:2)

您无法将完整的Date对象存储在JSON字符串中。但您可以尝试存储代表他的文本:

作为字符串:

[{ "ID": 1, "text": "test"}]

作为时间戳:

{ type:'date', 'min':(new Date()).toString() }

作为ISO字符串:

{ type:'date', 'min':(new Date()).getTime() }

答案 2 :(得分:1)

JSON不支持Date数据类型(它只支持字符串 数, 宾语, 阵列, 真正, 虚假,和 空值)。您需要将其转换为字符串。

例如,ISO时间:

var json = JSON.stringify( { type:'date', 'min':new Date().toISOString() } );
document.body.appendChild(document.createTextNode(json));

答案 3 :(得分:0)

日期对象实际上有一个toJSON方法,您可能会发现它很有用。但是我建议使用getTime,因为它返回一个时间戳,通常更灵活。