【问题标题】:timezone.js not working in zend framework 2timezone.js 在 zend 框架 2 中不起作用
【发布时间】:2015-05-06 14:41:15
【问题描述】:

我正在尝试在 javascript 中进行时区转换,但在使用 timezone.js 时我一直在控制台中得到这个:

警告:主线程上的同步 XMLHttpRequest 已被弃用,因为它对最终用户的体验产生不利影响。如需更多帮助,请查看http://xhr.spec.whatwg.org/

错误:GET http://exodo/tz/asia 404(未找到)

错误:未捕获的类型错误:无法读取 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);

我们将不胜感激快速回答

谢谢

【问题讨论】:

  • 您的文件库路径是否正确?检查您的网络.. XMLHttpRequest 失败..
  • 是的 FileBasePath 是正确的,我错过了一些时区用来操作的 Olson 文件。感谢您的快速回复
  • 我仍然收到 XMLHttpRequest 警告,但时区转换效果很好。
  • 我已经在代码片段中有 async:false 并且它已经给出了警告。
  • 刚刚尝试过但收到此错误未捕获错误:时区“欧洲/罗马”不正确,或未加载到时区注册表中。

标签: javascript zend-framework timezone


【解决方案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 }); 

【讨论】:

  • 我不确定 /tz 应该包含什么。刚刚添加了这些文件,它工作得很好。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 2016-02-25
相关资源
最近更新 更多