无法将修改后的Date()对象保存到Sequelize DATE字段

时间:2016-04-10 15:39:21

标签: javascript postgresql datetime sequelize.js

user.addDays(3)应将user.expires设置为当前时间+3天。但是,它没有。

let User = sequelize.define('User', {
  email: DataTypes.STRING,
  name: DataTypes.STRING,
  expires: DataTypes.DATE
}, {
  instanceMethods: {
    addDays: function(days) {
      let date = this.expires ? this.expires : new Date()
      date.setTime(date.getTime() + days * 86400000)
      this.expires = date
      return this.save()
    }
  }
})

没有保存||验证错误,但不修改user.expires。仅供参考,如果我在保存之前检查user对象,则会更新expires字段。

如果我改变:

this.expires = new Date()

user.expires更改为当前日期,因此vanilla Date()对象可以正常工作。

我似乎错过了一些明显的东西。

非常感谢任何帮助。提前谢谢。

UPD:根据this question,它可能与node-pg包有关。所以,我应该明确提到 - 我也使用PostgreSQL。

UPD#2:目前,解决了Moment.js的问题:

addDays: function(days) {
  let date = this.expires? moment(this.expires) : moment()
  this.expires = date.add(days, 'days')
  return this.save()
}

有效。但是,vanilla JS解决方案仍然缺失。我很确定,我提供给PG的日期格式有问题。但没有错误,这很奇怪。

澄清仍然受到赞赏。

0 个答案:

没有答案