2011-12-09 6 views
1

テーブルに日付時間オブジェクトを表示していますが、何らかの理由でInternet Explorerで「なし」または「無効な日付」と表示されています。 HHなどYYYY/MM/DDとして、これは読みやすく作るための簡単な方法:MMJSには無効な日付/非表示IE/Firefoxの日付オブジェクト

これはクロームで表示される内容です:

Mon Nov 28 2011 16:00:00 GMT-0500 (EST) 

これはAPIでその出力にUnixタイムスタンプから変換されています層。

+2

私たちはあなたのコードを参照してくださいもらえますか? –

答えて

0

あなたは切り抜いたブラウザやplateforms

-1

ですべての問題私はクロームがここで役に立つこととあなたのための.toString()メソッドを呼び出している疑いを渡すように、単なる文字列として日付をフォーマットするために、独自の方法を作ります。

Dateオブジェクトには、文字列出力をフォーマットするいくつかのメソッドがあります。例については、the w3schools reference pageを参照してください。

2

おそらくDateオブジェクトの作成は失敗します。新しいDate()コンストラクタは、実装に依存する一部の日付文字列のセットを受け入れるためです。

あなたは、通常の意味でのローカライズが関与していない - しかし種類の局在があるとして、日付の異なる文字列プレゼンテーションを扱っている場合でも、このような問題に対処するためにGlobalizeライブラリを使用することができます。最初はちょっと面倒です(私の本「Going Global with JavaScript and Globalize.js」には、多くの例があり、読みやすい説明が含まれています)、それは完璧ではありませんが、有用。

タイムスタンプデータが既知の正確な形式であることがわかっている場合は、簡単に解析して独自の形式記述子に従って出力できます。フォーマットは

月2011年11月28日午後四時00分00秒GMT-0500(EST)

で例示したものであることを、定性のために、と仮定すると、(私はそれはあなたが言及した出力形式を知っていますしかし、単に例として使用します)、 "GMT"と "(EST)"の部分(Globalizeでは現在処理できません)を破棄する単純な文字列操作を行います。

月2011年11月28日午後04時00分00秒-05:00

、その後、あなただけの次のようなコードを使用します。

var foo = Globalize.parseDate(timestamp,'ddd MMM d yyyy HH:mm:ss zzz'); 
var out = Globalize.format(foo,'MM/dd/yyyy HH:MM'); 
document.write(out); 
関連する問題