猫鼬:时刻()。格式不起作用

时间:2017-08-07 12:13:03

标签: node.js mongodb momentjs

我有Mongoose架构如下:

createdOn: {
    type: String,
    //default: Date.now,
    default: moment(new Date(Date.now())).format('MMM Do YY')    //npm install moment --save   # npm
},
updatedOn: {
    type: String,
    //default: Date.now
    default: moment(new Date(Date.now())).format('MMM Do YY') 
}

更新

将类型更改为String后,

我明白了:

2017年7月28日星期五14:43:40 GMT + 0530(IST)

如何删除时间和SMT。

我需要保留2017年7月28日星期五

我安装了节点js(http://momentjs.com/

的Moment包

上面的架构出了什么问题:

我得到了

  

MongooseError:对于值" 8月7日17"在路径" updatedOn"

     

消息:'对于价值" 8月7日17"在路径" updatedOn"',     名称:' CastError',     stringValue:'" 8月7日17"',     善良:' date',     价值:' 8月7日17',     路径:' updatedOn',     理由:未定义}

1 个答案:

答案 0 :(得分:1)

双重默认分配看起来不对。

default: default: moment(new Date(Date.now())).format('MMM Do YY')

作为一种更好的做法,您应该考虑使用UNIX时间戳而不是格式化日期字符串。时间戳将允许您轻松跟踪数据库中的统计信息

所以你可以使用:

Date.now() // returns a UNIX timestamp

在moment.js中,UNIX时间戳:

moment().unix()

如果由于某种原因你需要字符串格式的时间戳,你可以随时做:

moment().unix() + ''