javascript - Moment.js 从 MySQL 日期时间返回错误值

标签 javascript mysql node.js momentjs

MariaDB datetime in field createdAt 5 days off using moment.js library

UTC to CST conversions

当从上面架构中的 MySQL DB(MariaDB 方言)列 createdAt 获取数据时,会返回 5 天的休息时间。这些记录于 2018 年 1 月 26 日上午 9:41 和上午 9:29 记录到数据库中,另一条记录于 2018 年 1 月 22 日下午 12:51 记录到数据库中。

我用来在控​​制台中记录结果的代码是:

   let test = moment(post.createdAt)
   console.log('test', test)

post.createdAt 位于 map 函数内,应该返回查询中每条记录的正确转换时间(在本例中,上面屏幕截图中的 3 条记录位于数据库中)

示例:

moment(post.createdAt) // 2018-01-22 18:53:15
  returns to client console.log:  2018-01-17T18:35:56.000Z

moment(post.createdAt) // 2018-01-26 15:29:41
  returns to client console.log:  2018-01-21T18:36:23.000Z

moment(post.createdAt) // 2018-01-26 15:41:49
  returns to client console.log:  2018-01-21T18:36:23.000Z

我有几个问题:

  1. 为什么返回给客户端的日期是实际登录数据库之前 5 天的日期?

  2. 返回正确日期和时间的正确方法是什么?我已经尝试过

    时刻(post.createdAt).utc()

    moment.tz(post.createdAt)

    moment.parseZone(post.createdAt)

没有成功。左边的客户端,我只是在日期上添加了 5 天以返回正确的日期,但这似乎不是一个可扩展的方法,我完全陷入如何将记录到数据库中的时间转换为 CST 的问题(芝加哥/美国)

有人能解释一下我犯的错误吗?还有 createdAt datetime NOT NULL 列的数据类型。

最佳答案

我无法重现您的问题。下面的测试代码。

console.log(moment('2018-01-22 18:53:15'));
console.log(moment('2018-01-26 15:29:41'));
console.log(moment('2018-01-26 15:41:49'));

console.log(moment('2018-01-22 18:53:15').format('MM/DD/YYYY HH:mm:ss'));
console.log(moment('2018-01-26 15:29:41').format('MM/DD/YYYY HH:mm:ss'));
console.log(moment('2018-01-26 15:41:49').format('MM/DD/YYYY HH:mm:ss'));
<script src="https://momentjs.com/downloads/moment.min.js"></script>

关于javascript - Moment.js 从 MySQL 日期时间返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567384/

相关文章:

javascript - 订阅推送通知时总是抛出注册失败错误

mysql - 无法通过分区来改变查询时间

node.js - npm 似乎忽略了我的私有(private)模块和针对公共(public)注册表的 404

mysql - 如何在 Knex 查询中执行 MySQL 函数?

javascript - 解析云代码不响应错误或 promise 成功

javascript - 无法从 jQuery 函数返回 JSON 对象

javascript - JQuery 并在多种形式中获取 1 个隐藏值

mysql - 条件 SQL 左连接

javascript - 如何在没有数据时隐藏选择选项

javascript - 在 Node JS 中执行代码时无法通过命令访问文件