0

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

我在datefield处理 Javascript 日期的 UI 中使用 ExtJS 的 s。我的 SQLite 模式使用datetime字段来存储它们。当我保存数据时,SQLite 抱怨违反了约束,但数据仍然在那里,所以我并不在乎。

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

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

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

有任何想法吗?

4

1 回答 1

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的结果。要返回原始字符串值,请参阅 getRawValue。

希望这对你有帮助:D

再见

于 2012-05-12T08:25:21.383 回答