比较客户端和服务器时间

我有一个Node.js服务器查询一个API来接收这样的一组时间:

{
  "end": "2014-05-24T14:00:00.000Z",
  "start": "2014-05-24T11:00:00.000Z"
}

客户端浏览器向服务器发出AJAX GET请求,并以ms为单位传递客户端的本地时间:

// ajax code
data: { localTime: (new Date()).getTime() }
// more ajax code

我想比较服务器接收的时间并检查它是否处于由API事件定义的时间间隔内。

API返回的数据定义东海岸的事件,当我将这些字符串传递给Date构造函数时,它们被解析为东部时区。

由于夏令时节省,以及客户端可能位于与服务器或EST不同的时区这一事实,因此出现此问题。

我试图将所有时间都转换到同一个时区,我感到非常困惑,所以我真的不知道我该如何以最可靠的方式去做这件事。

任何帮助是极大的赞赏!


你可能不想使用(new Date()).getTime()

你可能会考虑new Date().toISOString()来代替,它返回一个与你的endstart相同格式的字符串。

这是一个可运行的例子:

var times = {
  "start": "2014-11-11T11:11:11.000Z",
  "end": "2014-12-12T12:12:12.000Z"
}

var data = {
  localTime: new Date().toISOString()
}

if (new Date(data.localTime) > new Date(times.start) && new Date(data.localTime) < new Date(times.end))
  document.body.innerHTML = "Client time is within the interval";
else
  document.body.innerHTML = "Client time is not within the interval";
链接地址: http://www.djcxy.com/p/86175.html

上一篇: Comparing client and server times

下一篇: Clock initialized by server then run by client is late