我正在尝试使用javascript进行时区转换,但是在使用timezone.js时我会在控制台中继续进行此操作:
警告:主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看http://xhr.spec.whatwg.org/。
错误:获取http://exodo/tz/asia 404(未找到)
错误:未捕获的TypeError:无法读取null的属性“1”
timezoneJS.timezone.zoneFileBasePath = 'tz';
timezoneJS.timezone.defaultZoneFile = ['asia', 'backward', 'northamerica', 'southamerica'];
timezoneJS.timezone.init({ async: false });
var dt = new window.timezoneJS.Date(new Date());
console.debug(dt.toString());
dt.setTimezone('America/Los_Angeles');
alert(dt);
提示答案将不胜感激
谢谢
答案 0 :(得分:1)
显然,您发现 GET http://exodo/tz/asia 404 (Not Found)
失败了。
您需要Olson时区文件 - timezoneJS.Date使用原始Olson数据来计算时区偏移量。 Olson区域文件是简单的结构化文本数据,可以快速下载并轻松解析。 (它们也会压缩到非常小的尺寸。)您可以从here
下载将您的Olson文件目录放在Web服务器根目录下的某个位置,并将timezoneJS.timezone.zoneFileBasePath指向它。然后调用init函数。您的代码将如下所示:
timezoneJS.timezone.zoneFileBasePath = '/tz';
有关详细信息,请参阅 How to setup?
timezoneJS.timezone.zoneFileBasePath = '/tz';
timezoneJS.timezone.defaultZoneFile = ['asia', 'backward', 'northamerica', 'southamerica'];
var successFn = function (){
var dt = new window.timezoneJS.Date(new Date());
console.debug(dt.toString());
dt.setTimezone('America/Los_Angeles');
alert(dt);
};
timezoneJS.timezone.init({ callback: successFn });