2012-11-30 28 views
2

我一直在試圖檢索日期值,並從數據庫中一個整數值,使用下面的代碼:如何從ExtJS JSonStore訪問日期類型字段?

var l_alsChampsMois, l_stoDonneesMois; 

    try { 
     l_alsChampsMois = [ 
      {name: "date_mois", type: "date", dateFormat: "Y-m-d"}, 
      {name: "indice", type: "integer"} 
     ]; 

     l_stoDonneesMois = new Ext.data.JsonStore({ 
      fields: l_alsChampsMois, 
      autoLoad: false, 
      proxy: { 
       type: "ajax", 
       url: "/commun/req_sql/req_ind_per_mois.php", 
       reader: { 
        type: "json", 
        root: "rows" 
       }, 
       // some configs to use jsFiddle echo service (you will remove them) 
       actionMethods: { 
        read: "POST" 
       }, 
       extraParams: { 
        key:"test" 
       } 
      }, 
      listeners: { 
       load: function(objStore, alsLignes, blnOk, objOptions) { 
window.alert("Mois fin : " + objStore.getAt(0).get("date_mois")); 
       } 
      } 
     }); 

    l_stoDonneesMois.load({params:   { 
           p_idsoc: l_strIdSociete, 
           p_mois:  l_datDebut.getMonth() + 1, 
           // getMonth renvoie 0 pour janvier, etc. 
           p_annee: l_datDebut.getFullYear(), 
           p_debut: 1, 
           p_etape: 1 
           } 
          }); 

與l_strIdSociete和l_datDebut感變量以前分配和/commun/req_sql/req_ind_per_mois.php的檢索數據並將其轉換爲JSON的PHP頁面。 (實際上,Firebug告訴我負載確實用「date_mois」和「indice」檢索包含我期望他們的值的數據結構),只有window.alert返回undefined。如果我將「date_mois」替換爲「indice」,它會返回「indice」的期望值。

我試圖使用objStore.getAt(0).getData()[「date_mois」],無濟於事。

我唯一的線索是,Firebug顯示的數據結構中的「date_mois」是一個對象,但即使如此,它不應該是未定義的,現在應該如何呢?我擡頭看了一下http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Field-cfg-type,這個答案並不完全正確。

那麼我在那裏做錯了什麼?

+0

你可以做objStore.getAt(0)的轉儲嗎?然後查看** raw **字段以確保您確實獲得了所需的數據。 – Damask

+0

有趣的問題。昨天Firebug不會出於某種原因調試,所以我不得不使用多個window.alert()消息(但我沒有想到** raw **字段)。足夠漫長,** raw **字段有: 對象{ date_mois = {date =「2012-11-30 00:00:00」,timezone_type = 3,timezone =「UTC」}, indice =「23 「 } 所以它似乎需要的數據在那裏。 –

+0

也許我錯了,但您認爲ext js可以將您的日期識別爲3個字段的對象嗎?我從來沒有見過這個。發送時間爲unix時間戳,無論如何它都可以工作。 – Damask

回答

0

如果您需要當前的時間,你可以使用PHP 時間功能(注:它返回秒,JS採用毫秒),在您需要通過mktime功能轉換另一種情況。

+0

很好,謝謝。這不在主要觀點之內,但它在某些時候可能派上用場。 –