如何格式化默认的猫鼬日期



我在一个express应用程序中使用mongose,我的架构包含一个Date属性,该属性使用Date.now。问题是,数据总是采用这种格式">2021-02-14T16:04:13.373Z";我真的不喜欢。有没有一种简单的方法可以在没有时间的情况下,或者至少没有这一部分的情况下将其格式化为日期:13.373Z";?如有任何帮助,我们将不胜感激。此外,这是模式,以防万一:

const schema = {
date: {type: Date, default: Date.now}
}

我的答案已经很晚了,但希望它能帮助其他人,因为这是一个好问题。我们可以通过添加这样的getter来格式化默认日期:

const schema =  new Schema({
date: {
type: Date, 
default: Date.now,
get: (date)=> date.toLocaleDateString("en-US") // getter
}
})

get: (date)=> date.toLocaleDateString("en-US")

这个getter将以这种格式给我们一个格式化的日期";MM-DD-YYYY";。

如果我们想要另一种格式;DD-MM-YYYY";我们可以更改这个("en-US")至CCD_ 3。

如果我们只是这样做get: (date)=> date.toLocaleDateString(),我认为日期将根据您的位置进行格式化,但我不完全确定,但您可以尝试更改圆括号内的格式,这对我来说完全有效。

编码快乐!

您不能更改MongoDb存储日期的方式,但您可以始终使用$dateToString更改查询响应中的格式。

不能在find查询中使用$dateToString。您需要使用aggregate pipelines将日期格式化为所需格式。

你可以在这里参考完整的文档

最新更新