比较客户端和服务器时间
我有一个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()
来代替,它返回一个与你的end
和start
相同格式的字符串。
这是一个可运行的例子:
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