2011-09-07 12 views
1

wcfがExtJsが使用できるdatetimeに出力する日時をどのように変換するのか分かりません。私はこれに関する多くの記事を見つけましたが、ExtJs 3のためのものであり、4で動作するようにはできませんでした。ExtJs 4 WCF DateTimeを表示

私はこのコードを見つけましたが、どのようにしてすべてを変換するのか分かりません私のJsonStoreで。

//this method is used to convert the MS JSON date format to the ExtJS Grid Date Column Value 
function dateFormatter(dt) { 
    /// <summary>this method is used to convert the MS JSON date format to the ExtJS Grid Date Column Value</summary> 
    /// <param name="dt">Actual JSON Date Value</param> 
    try { 
     //microsoft JSON date format needs to convert into Javascript date 
     var newdata = dt.replace(/\/Date\((-?[0-9]+)([+-][0-9]+)?\)\//g, "new Date($1)"); 
     newdata = eval('(' + newdata + ')'); 
     return newdata.format('m/d/Y'); 
    } 
    catch (e) { 
     return dt; 
    } 
} 

答えて

4

Ext JS 3と異なり、Ext JS 4はネイティブDateオブジェクトを拡張しません。代わりにExt.Dateを提供します。だから、代わりに:

date.format('m/d/Y'); 

あなたの代わりに使用します。

Ext.Date.format(date, 'm/d/Y'); 

をさらに(evalのを使用して)ほとんどの時間は本当に悪い考えです。このコードも例外ではありません。

evalを削除すると、try-catchも必要ありません。

最後に、日付を解析して別の形式に変換する関数はあまりにも多すぎるようです。多くの場合、同じ日付をさまざまな形式でアプリのさまざまな部分に表示する必要があります。したがって、私はむしろ、WCFの日付形式をJavaScript Dataオブジェクトに解析する関数を用意しています。そして、Dateオブジェクトを必要な場所で特定の文字列形式に変換します。すべての不要なものを削除

が、これは私が得るものです:とにかく

function parseWcfDate(dt) { 
    var milliseconds = dt.replace(/\/Date\((-?[0-9]+)([+-][0-9]+)?\)\//, "$1"); 
    return new Date(parseInt(milliseconds, 10)); 
} 

、このすべてがあまりにも面倒です... のExt JSは内蔵されていWCF形式の日付を解析するためのサポート:

Ext.Date.parse("/Date(1234567894560)/", "MS"); 

も参照してください:

0

JavaScriptDateConverterで使用JSON.NET。