2010-01-14 121 views
6

如何在網格面板中顯示日期/時間。日期是從服務器端asp.net web服務來爲:如何在extjs中顯示時間和日期

{9/14/2009 10:23:00 AM} 

我在顯示日期和時間得到一個錯誤。它顯示NaN/NaN/NaN 12:NaN:NaN PM

var store = new FMP.AspNetJsonStore({ 
      fields: [ 
         { name: 'DateOccurred'} 
        ], 
}); 

var dateRenderer = Ext.util.Format.dateRenderer('m/d/Y h:i:s A'); 

{ header: xppo.st('SDE_DATE_OCCURRED'), width: 75, sortable: true, 
    dataIndex: 'DateOccurred', renderer: dateRenderer }, 

在商店,如果我定義字段:

[ { name: 'DateOccurred', type: 'date', dateFormat: 'm/d/Y'} ], 

...它會顯示一個空白領域。

請幫我解決這個問題。

回答

6

指定的dateFormat必須與日期字符串完全匹配才能解析。格式'm/d/Y'失敗,因爲它缺少時間分量,'m'需要2位數的月份。它成功地解析您的示例日期字符串中的日期格式爲:

'n/d/Y H:i:s A' 

您也可以嘗試省略日期格式,同時保留字段的類型設置爲「日期」。如果沒有特定的格式,ExtJS會回退到Date.parse。

+0

感謝您的答覆。 我已經將我的日期時間對象更改爲字符串,因爲我解析它有一些其他問題。 – xrx215 2010-01-15 16:45:14

0

我同意貓頭鷹,但我想添加一些更多的評論給這個答案,因爲我遇到過它的多種形式。

有一點需要注意的是您的瀏覽器。我注意到,在編碼時要解決這個問題,即我的瀏覽器會進入兼容模式並下載到IE 8,然後在使用IE 11時顯示此問題,這要感謝我的業務部門的註冊表設置。要解決網頁上的兼容模式問題,請嘗試將以下HTML元標記添加到調用Ext JS應用程序文件的初始HTML頁面中。

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 

是您的網格列或設置爲一個日期字段等的xtype對象,你的模型是什麼,實際上是使用日期列類型的模型。看看模特領域,並設置有問題的日期字段type()到目前爲止是這樣的:

type: 'date', 
... 

看看另一個項目是,以驗證您從Google的服務器調用回數據的格式。它看起來像你得到一個直的JSON序列化的Date對象。我看到這些對象也返回,因此{"Date":"2014-09-18T00:00:00" ...}和序列化數據中的T字符引起了問題。

如果您需要爲這種情況設置格式,請將dateFormat()配置中的轉義字符包括在您的模型中。這裏是設置與在它的轉義字符的例子:dateFormat: 'Y-m-d\\TH:i:s',

最後我最後的決議是,如果你與你的日期,但仍有問題顯示出來,沒有上述建議已經爲你工作,嘗試設置dateReadFormat()dateWriteFormat()配置設置,這些設置將覆蓋我們討論的第一個設置dateFormat()。我不知道爲什麼,但由於某些原因,這兩個單獨的設置正在使用解決了我的日期問題,其中單個日期格式配置設置沒有。這可能與作家有關,我現在還不清楚。

代碼可能會類似於這樣:

...  
dateReadFormat: 'Y-m-d\\TH:i:s', 
dateWriteFormat: 'Y-m-d\\TH:i:s', 
... 

我希望這可以幫助一些人在那裏......