0

データ表を作成しました。すべての列はソート可能です。dd/mm/yyyy hh:mm:ss をフォーマットした1列に日付があります。これはdocoで定義されているデフォルトの形式とは異なりますが、アメリカ以外の形式用に独自の形式を定義できるはずです。(下記参照)

DataTable クラスは、一連の組み込み静的関数を提供して、特定の既知の型のデータをフォーマットします。列の定義で、列のフォーマッタを YAHOO.widget.DataTable.formatDate に設定すると、その関数は「MM/DD/YYYY」のデフォルト構文で Date 型のデータをレンダリングします。独自のフォーマッタを優先して組み込みのフォーマッタをバイパスする場合は、定義したカスタム関数を列のフォーマッタに指定できます。

テーブルは HTML マークアップから生成されるため、データは "" タグ内に保持されます。

これにより、javascript の互換性のある文字列の日付に関するいくつかの手がかりが得られます。

一般に、RecordSet は、ネイティブの JavaScript 型でデータを保持することを想定しています。たとえば、正しく並べ替えるには、日付は「2005 年 4 月 26 日」のような文字列ではなく、JavaScript の Date インスタンスである必要があります。データが RecordSet に入るときのデータ型の変換は、DataSource の responseSchema の fields 配列のパーサー プロパティによって有効になります。

日付形式に何かが欠けていると思われます。では、「dd/mm/yyyy hh:mm:ss」としてフォーマットしたい場合、Yui dataTable が認識する javascript の許容可能な文字列日付は何ですか?

4

3 に答える 3

1

ロケールを定義する

YAHOO.util.DateLocale["pt-BR"] = YAHOO.lang.merge(YAHOO.util.DateLocale, {
    x:"%d/%m/%Y"
});

そして、あなたの列設定は次のとおりです

{key:"columnKey", label:"columnLabel",  
    formatter:function(container, record, column, data) {
        container.innerHTML = YAHOO.util.Date.format(data, {format:"%x"}, "pt-BR");
    }
}
于 2010-04-22T20:47:44.577 に答える
0

サーバーからクライアントに任意の形式で日付を渡すことができます。DataSource.responseSchema.fields設定parserフィールドで、それを解析する関数に渡すだけです。動的データの例stringToDateで探してください。

クライアント側では、日付を他の形式で表示して formatter、それぞれのフィールドに機能を提供できますColumnDefs

DataTable全体の日付形式を設定するには、そのdateOptionsオプションを設定します。または、oConfigパラメータのYAHOO.util.Date.format()ドキュメントColumnDef.dateOptionsで説明されているのと同じように設定することもできます。

現在のロケールとDataTable全体の場合、次のようになります。

  var myConfigs = {
    initialRequest: ...
    ...
    // http://developer.yahoo.com/yui/docs/YAHOO.util.Date.html
    dateOptions: {format: '%c'} 
  };

そこでsLocaleを設定することもできます。

于 2010-05-17T13:10:40.307 に答える
0

Javascript は、次の形式の日付文字列を使用して Date を作成できます。

new Date("April 22, 2010 14:15:23");

サーバー側で日付文字列の形式を制御できない場合 (または変更したくない場合) は、日付文字列を取得して新しく構築された Date オブジェクトを返すカスタム解析関数を作成します。

DataTable で表されるデータを構築するときに、このパーサー関数を使用できます。

rows:[{name:"John",born:customParser("[date string here"]},
      {name:"Bill",born:customParser("[date string here"]}
     ]

-また-

Yui の DataSource モジュールを使用している場合 (2 番目の灰色のボックスで示されているように)、このパーサー関数を日付フィールドに登録して、DataTable が構築される前に既に Date() になるようにすることができます。

dataSource.responseSchema = {
    . . .
    fields: [
        ...
        { key: "birth_dt", parser: customParser }
        ...
    ]
    ....
}
于 2010-04-22T19:49:10.577 に答える