我有以下字段驗證對象:商店`新的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