nodejs+mysql+sequlize,
定义数据model的时候使用如下:
createTime: { type: DataTypes.DATE, defaultValue: DataTypes.NOW },
但是实际插入的时间总是和现在相隔8个小时,
已经在mysql中设置过时区,进去mysql查询到的时间是正常的,但是不知道为什么defaultValue会少8个时间,不知道有没有人见过这个问题
nodejs+mysql+sequlize,
定义数据model的时候使用如下:
createTime: { type: DataTypes.DATE, defaultValue: DataTypes.NOW },
但是实际插入的时间总是和现在相隔8个小时,
已经在mysql中设置过时区,进去mysql查询到的时间是正常的,但是不知道为什么defaultValue会少8个时间,不知道有没有人见过这个问题
3 回答1.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
https://segmentfault.com/q/10...
在小伙伴的帮助下找到了相关答案,详情参考以上链接的第一条回复。
大致总结就2种方法:
1.
const Sequelize = require('sequelize');
const sequelize = new Sequelize('dbname', 'username', 'password', {
});
2.
程序中设置process.env.TZ = 'Asia/Shanghai';
const Sequelize = require('sequelize');
const sequelize = new Sequelize('dbname', 'username', 'password', {
});
之前在做的就是这种,因为设置了环境变量却依旧得不到正确的时间,以为是数据库的问题。后面看到API才知道,需要在sequlize里面引用,否则没用。