我有以下字段验证对象:商店`新的Date()`在JSON对象
{ type:'date', 'min':new Date() }
我希望我可以存储new Date()
作为JSON一个表达式,它会被执行时,它的解析
我有以下字段验证对象:商店`新的Date()`在JSON对象
{ type:'date', 'min':new Date() }
我希望我可以存储new Date()
作为JSON一个表达式,它会被执行时,它的解析
保存时间戳:
{ type:'date', 'min':(new Date()).getTime() }
你读它之后回:
var result = JSON.parse('{ "type":"date", "min":1234567 }');
result.date = new Date(result.min);
,因为它是现场验证我希望我可以使'min'动态。所以,当页面加载和SQL发送这个验证器对象时,它被解析为今天的日期,而不是一个静态的日期。那有意义吗? – stackoverfloweth
根本没有意义。 Json是数据。你用一些价值来保存它,你就会收回它。 “动态”是代码:你创建一个函数,当你调用它时,它返回那个时刻的日期。为此,你不需要在json中有min分钟 – Gavriel
好的,谢谢你的帮助 – stackoverfloweth
日期对象实际上有一个toJSON
方法,您可能会发现它有用。不过,我建议使用getTime
,因为它会返回一个通常更灵活的时间戳。
JSON不支持的数据类型的日期(它只支持字符串 数, 对象, 阵列, 真,假 ,和 空)。您需要将其转换为字符串。
例如,ISO时间:
var json = JSON.stringify({ type:'date', 'min':new Date().toISOString() });
document.body.appendChild(document.createTextNode(json));
您可以将完整的Date对象不存储在一个JSON字符串。但是你可以尝试存储文本代表他:
作为一个字符串:
{ type:'date', 'min':(new Date()).toString() }
为时间戳:
{ type:'date', 'min':(new Date()).getTime() }
作为ISO字符串:
{ type:'date', 'min':(new Date()).toJSON() }
你可以不会在JSON中存储表达式,并希望它在解析时执行。 – pawel
很难说没有更多的上下文。它是一些外部库需要的格式吗?你在服务器端生成JSON吗?有可能使验证器可用,以便它可以接受像'{type:'date',allowPast:false}'这样的对象? – pawel
可以工作,谢谢@pawel – stackoverfloweth