javascript - 如何在不同时区的特定日期显示数据库中的项目?

标签 javascript node.js mongodb

远程服务器上的日期是 GMT 0。本地机器上的日期是 GMT +3。格林威治标准时间 +3 的 00:30 将项目插入到数据库中。如何在每个时区正确选择这个项目,所以在 GMT 0 它将在 x.month 和 GMT +3 它将是 x+1.month?

我试过这个:

    let n = new Date();
    const todayStart = new Date(n.setHours(0, 0, 0, 0));
    const todayEnd = new Date(n.setHours(23, 59, 59, 999));

    // mongo query
    date = {
      $gte: desiredDateStart,
      $lte: desiredDateEnd
    };

如果服务器时区与本地时区匹配,这将起作用。 但如果有间隔,例如 3 小时,则仅根据昨天的请求选择该项目。

最佳答案

使用 UTC 将日期保存到数据库,并在检索时将其转换为特定时区。

关于javascript - 如何在不同时区的特定日期显示数据库中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57023314/

相关文章:

javascript - JavaScript 中的按位异或运算符

javascript - 如何修复nodejs Express服务器中的 "MulterError: Unexpected field"?

javascript - 带有 Express 应用程序生成器的 Webpack

windows - 如何设置SSH隧道以连接到驻留在AWS EC2服务器上的ElasticSearch和MongoDB?

mysql - 将 MongoDB Auth 代码迁移到 Mysql Node.Js

mongodb - 如何删除 MongoDB 中的 _id 并替换为另一个字段作为主键?

javascript - 为什么我的对象从 char 拆分为 char?

javascript - Chrome 新版本 37 中的弹出问题

javascript - 隐藏/透明元素会影响渲染性能吗?

node.js - 需要将wrappbootstrap主题集成到nodejs Expressjs应用程序中的程序