0

私は timezone-js を使用しています: https://github.com/mde/timezone-js。使用したい事前定義されたタイムゾーンのリストがあります。そこで、これらのタイムゾーンの JSON データを事前に解析しました。

しかし、このデータをどのように使用すればよいのでしょうか?

var _tz = timezoneJS.timezone;
_tz.loadingScheme = _tz.loadingSchemes.MANUAL_LOAD;
_tz.loadZoneJSONData('/major_cities.json', true);

ここのように、データを読み取ることができます。しかし、tz変数を使用して timezoneJS を初期化するにはどうすればよいでしょうか?

私は最初にこのようなことをすることになっていると考えています:

timezoneJS.timezone.loadZoneDataFromObject(_tz);

そして、それを初期化します...そして、timezoneJSを初期化しますが、今初期化すると、デフォルトのタイムゾーンが見つからないというエラーが表示されます: Uncaught Error: Error retrieving "null/northamerica" zoneinfo files、おそらくjsonデータを提供したためです。

timezoneJS.Dateオブジェクトを作成できるように、json ファイルを使用する方法を知りたいのですが。

4

1 に答える 1

3

まず第一に、 tz_ は単なるショートカットであり、後続の行に timezoneJS.timezone を書き込むことを防ぎます。

ここで、2 つのオプションがあります。サーバーにファイルmajor_cities.jsonがあり、timezoneJS を初期化したい場合は、次のように書くだけです。

var _tz = timezoneJS.timezone;
_tz.loadingScheme = _tz.loadingSchemes.MANUAL_LOAD;
_tz.loadZoneJSONData('/major_cities.json', true);

これで準備完了です。2 番目のオプションは、そのファイルのデータを含むオブジェクトを用意することです。そのような場合、 loadZoneJSONData の代わりに loadZoneDataFromObject を使用する必要あります

var _tz = timezoneJS.timezone;
_tz.loadingScheme = _tz.loadingSchemes.MANUAL_LOAD;
_tz.loadZoneDataFromObject(majorCitiesObject);

その後、init 関数を呼び出さないでください。したがって、timezoneJS はすでに loadZoneJSONData によって初期化されています。日付を作成する場合は、new timezoneJS.Date() を呼び出すだけです。次の行がヒントになります。

var timezoneName = 'Europe/London';
var newDate = new timezoneJS.Date(timezoneName);
console.log(newDate.toString());
console.log(newDate.toISOString());

結果は次のようになります。

2013-04-08 11:56:33
2013-04-08T10:56:33.019Z
于 2013-04-08T11:01:24.207 に答える