我有一个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不同的时区。
我试图将所有时间转换为相同的时区变得非常困惑,所以我真的不确定如何以最可靠的方式进行此操作。
非常感谢任何帮助!
答案 0 :(得分:0)
您可能不想使用(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";
&#13;