0

WebSQL を使用してブラウザの SQLite データベースにデータを保存するアプリケーションを ExtJS で作成しています。(要件は web-kit ブラウザーのみです。幸運なことにそうですよね?) 日付フィールドで問題が発生しています。

datefieldJavascript の日付を処理する UI でExtJS を使用しています。私の SQLite スキーマは、datetimeフィールドを使用してそれらを格納します。データを保存すると、SQLite は制約違反について不平を言いますが、データはまだそこにあるので、あまり気にしません。

問題は、ExtJS グリッドを設定するために、SQLite で日付を比較する必要があることです。しかし、日付形式は Javascript データ形式であり、SQLite の受け入れ可能なdatetime形式の 1 つではないため、SQL での比較は機能しません。

SQLite が期待する形式ではないため、SQL は日付を比較できません。どうすれば修正できますか?

データを保存するときに Ext.Data.format() を使用して、SQLite が好む形式 ( ) で保存しようとしましたが、役に立ち"Y-m-d"ませんでした。Date()関数を使用してSQLでJavascript Date形式からSQLite datetime形式に変換することも検討しましたが、それもうまくいきませんでした。

何か案は?

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 から):

フィールドの現在のデータ値を返します。返される値の型は、フィールドの処理された String 値に対して rawToValue を呼び出した結果として、特定のフィールドの型 (Ext.form.field.Date の Date オブジェクトなど) に固有のものになります。生の文字列値を返すには、getRawValue を参照してください。

これがあなたの助けになることを願っています:D

チャオ

于 2012-05-12T08:25:21.383 に答える