我想过让我的用户在我的应用程序中选择他们自己的时区,但是用一些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等的本地约定。