数据库中的日期在前端被视为String

时间:2017-12-02 02:04:19

标签: javascript mongodb date mongoose momentjs

我想在我的数据库中保存date项目以获取我的网站日志:

var LogSchema = new mongoose.Schema({
    date: Date,
    ... ...
})

在后端生成并保存日志:

log.date = new Date()
console.log(log.date.getTime()) // it works well
log.save(...)

当我在mongo中检查数据库时,它会显示:"date" : ISODate("2017-12-02T01:51:44.540Z")

但是,在前端,当我想阅读日志时,log.date.getTime()会出现错误TypeError: log.date.getTime is not a function。似乎log.date被视为String而不是Date

有谁知道这里有什么问题?

1 个答案:

答案 0 :(得分:0)

您正在将JavaScript Date对象与ISO Date字符串混合在一起。保存到数据库时,它确实成为一个字符串。您必须先将日期字符串转换回javascript日期对象,然后才能使用getTime()方法。尝试:

var myDate = new Date(dateStringFromDatabase);
console.log(myDate.getTime());