使用ExtJS在SQLite中存储Javascript日期

时间:2012-05-12 00:53:04

标签: javascript sql sqlite extjs

我正在ExtJS中编写一个应用程序,它使用WebSQL将数据存储在浏览器的SQLite数据库中。 (这些要求仅针对web-kit浏览器,幸运的是我吗?)我遇到了日期字段的问题。

我在我的UI中使用ExtJS的datefield来处理Javascript日期。我的SQLite架构使用datetime字段来存储它们。当我保存数据时,SQLite抱怨绑定违规,但数据仍然存在,所以我并不在乎。

问题是我需要在SQLite中进行一些比较,以便填充ExtJS网格。但是因为日期格式是Javascript数据格式而不是SQLite可接受的datetime格式之一,所以在sql中进行比较不起作用。

我的sql无法比较日期,因为它不是SQLite期望的格式。我该如何解决这个问题?

我在保存数据时尝试使用Ext.Data.format()将其置于SQLite喜欢的格式("Y-m-d")但无济于事。我还研究了使用Date()函数在我的sql中从Javascript Date格式转换为SQLite日期时间格式,但这也没有用。

有什么想法吗?

1 个答案:

答案 0 :(得分: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 Doc):

  

返回字段的当前数据值。返回的值的类型特定于特定字段的类型(例如,Ext.form.field.Date的Date对象),作为在字段的已处理字符串值上调用rawToValue的结果。要返回原始String值,请参阅getRawValue。

希望这能帮到你:D