我正在使用时区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数据。

我是否想知道如何使用json文件,以便创建timezoneJS.Date对象。

最佳答案

首先,tz_只是一个捷径,可以防止在随后的行中写入timezoneJS.timezone。

现在,有两个选择。如果您在服务器上拥有文件major_cities.json,并且想要初始化timezoneJS,则只需执行编写的操作即可:

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


你们都准备好了。第二个选项是您有一个包含该文件中数据的对象。在这种情况下,您应该使用loadZoneDataFromObject而不是loadZoneJSONData,即:

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


之后,您不应该尝试调用init函数,因此loadZoneJSONData已经初始化了timezoneJS。如果要创建日期,只需调用新的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

关于javascript - 使用JSON文件初始化timezoneJS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15591512/

10-10 05:12