我正在使用时区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/