2012-05-12 60 views
0

我在使用WebSQL將數據存儲在瀏覽器中的SQLite數據庫中的ExtJS中編寫應用程序。 (這些要求僅適用於網絡瀏覽器,幸運的是我?)我遇到了日期字段的問題。在SQLite中用ExtJS存儲Javascript日期

我在我的UI中使用ExtJS的datefield s處理Javascript日期。我的SQLite架構使用datetime字段來存儲它們。當我保存數據時,SQLite抱怨違反了違規行爲,但數據仍然存在,所以我並不在乎。

問題是我需要在SQLite中進行一些比較,以填充ExtJS網格。但由於日期格式是Javascript數據格式,而不是SQLite可接受的datetime格式之一,因此在sql中進行比較是行不通的。

我的sql無法比較日期,因爲它不符合SQLite預期的格式。我如何解決這個問題?

我保存數據時,把它放在SQLite的喜歡("Y-m-d")的格式,但無濟於事使用Ext.Data.format()嘗試。我也研究過從Javascript日期格式轉換爲SQL的日期時間格式在我的SQL與Date()函數,但那也沒有奏效。

任何想法?

+0

[這](http://www.sqlite.org/lang_datefunc.html)指定的SQLite的日期時間格式。你可以在你的代碼中加入一些調試來正確地打印*發送給SQLite的字符串嗎? – jimw

+0

就像我說的,我使用的是Javascript日期對象,所以格式爲:'Fri May 11 2012 20:32:54 GMT-0600(MDT)' – Miles

回答

1

它不適用於此?

Ext.create ('Ext.container.Container', { 
    renderTo: Ext.getBody() , 
    items: [{ 
     xtype: 'datefield' , 
     fieldLabel: 'date' , 
     format: "Y-m-d" 
    } , { 
     xtype: 'button' , 
     text: 'Push me' , 
     listeners: { 
      click: function (button) { 
       console.log (button.previousSibling('datefield').getRawValue()); 
      } 
     } 
    }] 
}); 

它打印'2012-05-12'。 如果您使用的getValue()你是錯的,因爲(從ExtJS的文件):

返回字段的當前數據值。返回的值的類型特定於特定字段的類型(例如Ext.form.field.Date的Date對象),因爲對字段的已處理字符串值調用rawToValue。要返回原始字符串值,請參閱getRawValue。

希望這有助於你:d

+0

啊,是的,這是問題所在。謝謝! – Miles