6

SQL データベースには、さまざまなタイム ゾーンの時間のリストがありますが、対応するタイム ゾーン情報はありません。

2012-01-01 01:02:03
2012-07-01 04:05:06

出力のために、Javascriptを使用してフォーマットしたいと思います。私は試した:

var text = input.replace(' ','T'); // SQL -> ISO8601
var d = new Date(Date.parse(text));
hours = d.getHours();

問題は、Chrome では日付が UTC であると解釈され、ローカル タイム ゾーンに変換されるため、次のようになることです。

2
6

Firefox では現地時間として解釈され、必要なものが得られます。

1
4

それで、Dateオブジェクトを使用したより良い解決策がありますか、それとも文字列を分割することにこだわっていますか?

4

2 に答える 2

6

私が見つけた唯一の解決策は、次のものに置き換えること-です/:

input = "2012-01-01 01:02:03";
var text = input.replace('-', '/');
var d = new Date(Date.parse(text));
hours = d.getHours();

私の場合、入力は次のとおりだったので、2013-05-22T16:45:00Z置き換えました。TZ

input = "2013-05-22T16:45:00Z";
var text = input.replace(/[TZ]/, '').replace('-', '/');
var d = new Date(Date.parse(text));
hours = d.getHours();

そうすれば、Javascript はタイムゾーンについて何も知らずにそれを処理し、賢く行動するのをやめます。

于 2013-05-21T07:47:15.440 に答える
0

Dates を扱うには、 Globalize jQuery プラグインDatejsなどの Date "framework" を使用してクロスブラウザーの動作を取得する必要があると思います。これを行うと、日付の解析で使用されるパターンを構成できるようになります。

于 2012-08-22T15:19:39.757 に答える