1

そのため、「2012-06-11T18:05」のように、サーバーからISO日時が返されます。今回はUTCです。その文字列をChromeまたはIEに渡すと、現地時間と同じように時刻が表示されます(つまり、CDTの場合は午後1時5分になります)(これが私が望むものです)。Firefoxに渡すと、すでに現地時間であると想定され、現地時間で午後6時5分と報告されます。そこで、代わりに「2012-06-11T18:05 + 0000」を実行して、UTC時刻を文字列に追加することにしました。これはChromeとFirefoxでうまく機能しますが、IEは無効な日付として報告します。

特定の日時文字列がUTC時刻を表すように指定できる、クロスブラウザの標準準拠の方法とは何ですか?

4

3 に答える 3

1

着信データを自分で解析し、これを使用して有効な日付オブジェクトを作成できます。

このような何か:

// input (from somewhere)
var incomingDate = "2012-06-11T18:05";
// parse Input using Regexp
var parsedIncomingDate= incomingDate.match(/^(\d{4})\-(\d{2})\-(\d{2})T(\d{2}):(\d{2})$/);
// convert parsed UTC times into ms accoring to the users browser timezone
var getUTCms = Date.UTC(parsedIncomingDate[1],parsedIncomingDate[2], parsedIncomingDate[3], parsedIncomingDate[4], parsedIncomingDate[5]); 

// ms to Date Object
var dateObj = new Date(getUTCms);

</ p>

于 2012-06-12T14:46:58.743 に答える
1

良い日付ライブラリを探しているなら、このような問題に対処するためにmoment.jsを書きました。自動 ISO8601 解析も備えています。

moment("2012-06-11T18:05"); // parse as local time
moment("2012-06-11T18:05+0000"); // parse as utc time

ライブラリでできることの例については、 http://momentjs.com/docs/のドキュメントを参照してください。

于 2012-06-12T19:11:26.940 に答える
0

Date.UTCメソッドは次のように使用できます。

var my_date = new Date(Date.UTC(2012, 5, 11, 18, 5, 0));

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/UTCを参照してください

于 2012-06-12T14:41:21.507 に答える