0

JavaScript の日付の奇妙さに遭遇し、頭を包み込むことができません。

WebAPI 経由で返された日付/時刻があります: '2012-12-13T12:17:06.080'。現地時間 (-7 UTC) です。

この日付を JavaScript で実行する場合

var d = new Date('2012-12-14T05:32:05.543');
alert(d.toTimeString());

22:32:05 MST を返します

それからやって

var d = new Date('2012-12-14T05:32:05.543');
alert(d.toLocaleTimeString());

戻る10:32:05 PM

JavaScript ドキュメントごとに toTimeString/toLocaleTimeString() は、時間部分を抽出するだけでよいと言っていますが、なぜ時間が変わったのですか? おそらく不要な関数を作成せずに、正しい時間部分05:32:05を返すようにするにはどうすればよいですか?

4

2 に答える 2

1

問題を解決する方法は次のとおりです。

日付の一部を取得し、日付オブジェクトを手動で作成します。

http://jsbin.com/iduzaz/3/watchを紹介するJSBinを添付しました

于 2012-12-14T18:22:54.043 に答える
1

コンストラクターにISO8601Date()タイムスタンプ文字列を指定すると、常にUTC として解釈されます。

すべてのブラウザが同じように動作するわけではなく、まったく気に入らないブラウザもあります。

于 2012-12-14T17:34:00.213 に答える