2012-08-14 34 views
0

我有一個日期字段,即將在JSON中作爲「August,13 2012 12:58:29」我正在使用jqGrid 3.7.2,無法升級,我需要調整什麼我的colModel在這種格式的「08/14/2012」在客戶端的日期格式?在jQuery中的日期格式jqGrid

我試過使用:formatter:'date',formatoptions:{srcformat:'',newformat:''}

,但我不能得到srcformat和newformat的正確組合。它永遠是怪異。

THANKS

回答

2

您使用非常糟糕的日期格式"August, 13 2012 12:58:29"作爲jqGrid的輸入。建議在服務器和客戶端之間發送的日期格式是一些獨立於語言和獨立於語言環境的格式,如2012-08-13T15:58:29Z(請參閱ISO 8601)。

另一個問題是,jqGrid 3.7.2不支持'F'格式(或實施中的錯誤)。您可以將DateFormat的代碼與parseDate的代碼進行比較,代碼爲jqGrid 3.7.2。如果你想更新jqGrid 3.7.2中函數的代碼,應該解決你的問題(例如,看我的一些bug報告,例如:herehere)。

P.S .:如果您想在未來收到您的問題的答案,您應該開始"accept"的答案。只需點擊一下你需要做的事情。

+0

感謝您的建議。不幸的是,我不能控制進入的日期,因爲它是一個遠程Web服務調用,而不是我的數據,所以我必須與之合作。我會研究你給出的建議。謝謝 – 2012-08-15 21:03:28

+0

@ErichH:不客氣! – Oleg 2012-08-15 21:15:14

0

我已通過手動更改jquery.jqgrid.src.js(4.5.2)解決了date-field的NaN/NaN/NaN問題。 在我的情況下,json響應將在'ISO1860Long'中返回日期。它用於工作,直到4.1.2 jqgrid版本

搜索「parseDate」函數;轉到該行後:

if(opts.masks.hasOwnProperty(format)) { format = opts.masks[format]; } 
if(date && date != null) { 

,並添加下面如果檢查:前

if(date.constructor === Number) { 
    if(String(format).toLowerCase() == "u") { 
    date = date*1000; 
    } 
    timestamp = new Date(date); 
} else 

現有:

if(!isNaN(date - 0) && String(format).toLowerCase() === "u") { 

可以翻譯的變化jquery.jqgrid.min.js你自己如果需要