如何在 Node.js 中格式化 Mongoose 的日期?
我正在尝试更改从 Mongo 数据库获取的日期的格式。目前它们看起来像这样:
Fri Sep 16 2011 19:05:17 GMT+0900 (JST)
我尝试对它们调用 .toString('yyyy-MM-dd')
但没有任何变化。我不知道它们是 Date 对象还是原始字符串。
我尝试检查猫鼬手册并谷歌搜索一堆,但还没有找到任何东西。
有什么想法吗?
I'm trying to change the format of the dates I'm getting from my Mongo database. Currently they look like this:
Fri Sep 16 2011 19:05:17 GMT+0900 (JST)
I've tried calling .toString('yyyy-MM-dd')
on them but nothing changes. I don't know if they're Date
objects or just raw strings.
I've tried checking the Mongoose manual and googling a bunch, but not found anything yet.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
一种现代的方法是使用 momentjs,既可以在节点中使用,也可以在浏览器中使用,超级有用且简单使用。对于当前的问题,我在遵循所有文档要求后在节点中解决了这个问题:
直接来自猫鼬的
photo.date_published
。A modern way to do this is to use momentjs, both usable in node and in the browser, super useful and simple to use. For the current problem I solved it like this in node after following all the docs requirements :
with
photo.date_published
directly coming from mongoose.您必须首先创建一个 Date 对象:
you have to create a Date object first:
定义你的架构怎么样:
st 日期作为
Date
对象存储在 mongoDB 中。因此,当您读回它时,您将拥有一个正确的Date
对象,您可以在其上使用可用的方法。what about defining your schema like:
s.t. the date is stored as a
Date
object in your mongoDB. As a result, when you read it back you'll have a properDate
object on which you can work with the available methods.只需添加
date: { type: String, default: Date }
输出将为: { "date": "Sat Nov 28 2020 22:57:38 GMT+0530 (India Standard Time)" }
Just Simply Add
date: { type: String, default: Date }
Output will be: { "date": "Sat Nov 28 2020 22:57:38 GMT+0530 (India Standard Time)" }
创建于:{
类型:日期,
默认值:当前日期
}
添加这个简单的行作为当前日期和时间
输出:-----
2021 年 7 月 2 日星期五 10:45:26 GMT+0530(印度标准时间)
created_at:{
type:Date,
default:Date.now
}
add this simple line for current date and time
output:-----
Fri Jul 02 2021 10:45:26 GMT+0530 (India Standard Time)
我倾向于做的是,在架构中,我使用 Date 类型定义日期:
然后我为 mongoose 架构定义一个实例方法:
并且,定义 mongoose 模型:
稍后,在我完成之后选择了一个特定的实例(对我来说,这通常在异步函数内),例如
我可以通过以下方式获取格式化日期:
如果该项目从Express传递到HTML,例如:
它可以用于HTML(至少对于 ejs 视图引擎的情况)为:
也许这有点啰嗦,尽管它对我来说效果很好。
What I tend to do is, in the Schema, I define dates with a Date type:
Then I define an instance method for the mongoose schema:
And, define the mongoose model:
Later, after I've selected a particular instance (for me this is generally within an async function), e.g.
I can get the formatted dates in the following way:
If the item is passed from Express to HTML, e.g.:
it can then be used in HTML (at least for the case of ejs view engine) as:
Perhaps this is a bit long-winded, although it works nicely for me.