Sequelize Getter方法日期格式

时间:2015-12-14 02:02:04

标签: express sequelize.js

我正在尝试在我的模型中使用getter方法将我的字段的日期格式更改为mm / dd / yyy可读格式,但似乎我的方法不起作用或者可能是我我不明白这个方法是如何运作的。下面是我的模型,我尝试公开annotationDateRead字段用于路由,但我得到一个无限循环,这表明我找不到这个字段。有没有更好的方法来实现我想要的东西?

模型:

module.exports = function(sequelize, DataTypes) {

var Annotation = sequelize.define('annotation', {
    annotation_id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    annotationDate: {
        type: DataTypes.DATE,
        field: 'annotation_date'
    },
    userId: {
        type: DataTypes.STRING,
        field: 'user_id'
    }
},

 {
    freezeTableName: true,


    getterMethods: {
        annotationDateRead: function(){
            var date = new Date(this.getDataValue('annotationDate')); 
            var month = date.getMonth();
            var day = date.getDate();
            var year = date.getFullYear();

            return month + '/' + day + '/' + year;

        }
    },

    classMethods: {
        associate: function(db) {
            Annotation.belongsTo(db.User)
        }
    }
});
    return Annotation;
}

1 个答案:

答案 0 :(得分:1)

这应该有效(版本5 +):

getterMethods: {
    annotationDateRead() {
        var date = new Date(this.annotationDate);
        var month = date.getMonth();
        var day = date.getDate();
        var year = date.getFullYear();

        return month + '/' + day + '/' + year;
    }
}