Moment.js - 显示选定范围内关于用户时区的历史数据

Moment.js - Displaying historical data from selected range with regard of user timezone

我对正确显示历史数据感到很困惑:

我有:

我需要:

我希望有某种指南可以向我解释我必须采取哪些步骤才能实现所有这些。谢谢!

在您的客户端代码中定义两个变量:

var startTime = moment().startOf('day').utc().format();
var untilTime = moment().add(1, 'day').startOf('day').utc().format();

您现在有了 UTC 的查询范围。通过表单 post 或您拥有的任何机制将它们发送到服务器,然后 运行 查询。

查询时,使用半开区间:recordTime >= startTime AND recordTime < untilTime

当您将结果返回给客户端时,您将获得 UTC 时间,因此请像这样转换为本地时间:

moment.utc(theData).local().format()

根据需要调整 input/output 格式。

下次,存储到 TIMESTAMP 而不是 DATETIME

TIMESTAMP根据客户端时区将要插入的日期+时间转换成UTC存储。随后的 SELECT 根据 reader 的时区重新转换。

这样,就不需要代码来实现目标(我认为是这样)。