node.js - 比较服务器上的客户端时间

标签 node.js datetime timezone

如果我在服务器上有一个以下格式的字符串,它可以位于任何时区:

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
}

但似乎没有成功。

最佳答案

您检查过 moment.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())

关于node.js - 比较服务器上的客户端时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26919667/

相关文章:

java - 如何将时区字符串转换为 Java 中的 TimeZone 对象?

mysql - 更改 MySQL 中的连接时区

javascript - Dropzone.js 无法在 Windows 上上传文件

javascript - 将包含项目的路径转换为树对象

datetime - DB2 timestampdiff 函数返回意外结果

sql - 你如何计算忽略年份的日期数学?

php将日期时间转换为UTC

node.js - 在 Node.js 中,我如何使用集合作为索引以编程方式从 Redis 数据库中检索许多哈希

xml - 如何使用 Node 从 URL 解析 XML

python - 具有相同区域设置的不同 datetime.strftime 输出