9

タイトルが尋ねるように、Date.toString()(より正確にはDate.toTimeString()) の出力は、すべてのブラウザーで常に同じ形式ですか?

EMCAScript の仕様で「文字列の内容は実装に依存する」と書かれているので、これを尋ねます。


span次のように HTML 要素を挿入して文字列をフォーマットする必要があるため、これを確認する必要があります。

(new Date()).toTimeString().replace(" GMT", "<span id='offset'> GMT") + '</span>' );

これにより、(Google Chrome v28.0.1500.95で)次のようなものが生成されます

18:19:26<span id="offset"> GMT-0700 (Pacific Daylight Time)</span>

CSS でスタイルを設定できます。


出力をスタイルするためのより良い方法の提案も素晴らしいでしょう!

4

2 に答える 2

5

つまり、toString は常に同じ形式を出力するとは限りません。

new Date().toString() 

版画

  • Firefox 10 の「2012 年 2 月 11 日土曜日 02:15:10 GMT+0100」
  • Chrome 16 の「Sat Feb 11 2012 02:18:29 GMT+0100 (西ヨーロッパ標準時)」
  • Internet Explorer 9 で「Sat Feb 11 02:18:59 UTC+0100 2012」

これらが古いブラウザー バージョンであることはわかっていますが、ブラウザーに依存していることがわかります。

ただし、toTimeString()それを使用すると、常に時:分:秒[スペース]...で始まるように見えます。

したがって、代わりに、最初の [スペース] に基づいて文字列を 2 つの部分に分割できます。

indexOf(" ")

次に、2番目の部分をスパンで包みます

Momentは日付の文字列フォーマットをいくつか行いますが、toString() メソッドに依存するため、要求されたオフセット文字列もうまく処理しません。

それが役立つことを願っています

于 2013-08-02T02:01:08.670 に答える