使用javascript应用用户的时区差异

Using javascript to apply the users timezone diff?

本文关键字:时区 用户 javascript 应用 使用      更新时间:2023-09-26

我想过让我的用户在我的应用程序中选择他们自己的时区,但是用一些javascript来使它自动呢?

一些psuedocode:
日期在服务器端打印为<p class="utcDate">2011-09-28 11:00 UTC</p>。当用户加载页面时,jquery遍历所有具有utcDate类的元素,并将UTC日期/时间替换为UTC &

用户的本地时区已被应用。

这样做时我应该注意什么?这有什么明显的缺点吗?

谢谢

如果您这样做(这没有错),请注意,如果涉及到很多元素,它可能会影响感知的页面加载时间。

请确保在dom就绪的事件处理程序中进行替换,而不是在页面加载时进行替换,因为这对用户来说是非常明显的。

与其输出UTC日期然后更改它,为什么不直接输出一个js。将通过document.write内联写入正确日期的代码片段?-这将更快的页面加载。

如果你在一个页面上使用它的所有地方都是相同的日期/时间,你可以通过js生成它一次,然后简单地输出存储在变量中的值

我建议输出Unix时间戳。js Date对象没有直接使用UTC字符串的能力(你必须解析出每个组件),但它可以使用setTime函数使用时间戳。

Date对象自动本地化到用户的设置,可以直接转换为字符串(尽管这可能比你想要的更冗长:"Wed Sep 28 2011 07:03:26 GMT-0400(东部夏令时)"),所以你可能想要自己格式化字符串:

$('p.utcDate').each(function () {
    var time = new Date();
    time.setTime(this.innerHTML);
    this.innerHTML = time.toDateString();
  });

作为一个额外的好处,toDateString将处理关于m-d-y和d-m-y等的本地约定。