我正在开发一个使用Comet将数据传输回Web客户端的网站。我的应用程序非常时间敏感,我有一个图表显示每秒添加的点数。
由于Web应用程序是Comet驱动的,因此客户端不需要处理日期,它应该只使用服务器时间戳来显示信息。即,无论用户的时区如何,图表上的绘制点都应在工具提示中显示服务器时间戳。
我认为我最好的方法是使用REST检索服务器的时间戳。然后测量服务器和客户端时间之间的时区偏移量,添加/减去差异并将其用作客户端的时间戳以用于显示目的。
有没有办法覆盖new Date()
的默认行为导致我将服务器的时间戳作为本地?
非常感谢。
答案 0 :(得分:1)
我编写了库TimeShift.js,它允许覆盖Date构造函数并设置当前时间和时区。我为了测试目的而编写它,但它也可以用于其他用途。
请务必查看当前库的注意事项。它目前仅支持GMT的固定偏移,因此不支持DST更改。
答案 1 :(得分:0)
重新定义它,它应该可以正常工作:
if(Date) {
try{
Date = null;
Date = function() {
console.log("The more things change, the more they stay the same!");
}
Date();
} catch(exeption) {
console.log("Couldn't override Date object.");
}
}