如果我在服务器上有以下格式的字符串,该字符串可能位于任何时区:
var timeString = 2014-05-24T14:00:00.000Z
将字符串表示的小时与客户端可能作为 GET 请求的一部分传入的小时进行比较的最佳方法是什么 (Node.js) ?
我需要帮助,因为服务器上的日期和从客户端收到的日期可能是夏令时或不同的时区。
我尝试将客户端时间作为自 Unix 纪元以来的毫秒数:
var clientTime = new Date(parseInt(req.query.localTime));
var serverTime = new Date(timeString);
if (serverTime.getUTCHours() == clientTime.getUTCHours()) {
// the hours match
}
但它似乎没有成功。
您是否检查过时刻.js,它使日期解析变得愚蠢,并且有一个用于处理时区转换的配套库(但通常不需要)。他们的文档中有一节解释了如何处理 UTC 与本地以及如何来回转换。
http://momentjs.com/docs/#/parsing/utc/
var moment = require('moment')
var timeString = '2014-11-14T00:06:34.000Z'
var epochTime = 1415923594000
var serverTime = moment(timeString).utc()
var clientTime = moment(epochTime).utc()
console.log(serverTime.hour());
console.log(clientTime.hour())