我想使用NodeJS插入MySQL日期,但它不起作用。
我的新约会:1989-12-31 00:00:00
NodeJS插入后:1989-12-30 23:00:00
NodeJS插入:
var user = request.body.user;
user.birth = user.birth.year + '-' + user.birth.month + '-' + user.birth.day + ' 00:00:00';
this.userDao.save(user);
new Date()
使用Javascript的结果:
Thu Dec 08 2016 11:00:15 GMT+0100 (Paris, Madrid)
如果我添加一小时的插入日期就可以了。
答案 0 :(得分:2)
您需要在Sequelize中设置options.timezone
,否则它将使用数据库服务器的时区偏移量,在您的情况下似乎是GMT,或偏离巴黎一小时。
[options.timezone='+00:00']
将日期从数据库转换为JavaScript日期时使用的时区。连接到服务器时,时区也用于设置TIMEZONE,以确保NOW,CURRENT_TIMESTAMP和其他时间相关功能的结果具有正确的时区。为获得最佳跨平台性能,请使用格式+/- HH:MM。还将接受moment.js使用的字符串版本的时区(例如'America / Los_Angeles');这对于捕捉夏令时变化非常有用。
Sequelize连接
const sequelize = new Sequelize(db, user, pass, { timezone: 'Europe/Paris' });