如何仅获取这种格式(年-月-日)或(日-月-年)的日期?
我有 index.ejs 文件来输出书籍对象,如下所示:
<tbody>
<% for (let i = 0; i < books.length; i++) { %>
<tr>
<td><%= i+1 %> </td>
<td><%= books[i].name %> </td>
<td><%= books[i].author %> </td>
<td><%= books[i].date %> </td>
<td>
<a href="/update-book?id=<%= books[i]._id %> ">
<span><i class="fas fa-pencil-alt"></i></span>
</a>
<a href="/delete-book?id=<%= books[i]._id %> " >
<span><i class="fas fa-times"></i></span>
</a>
</td>
</tr>
<% } %>
</tbody>
然后,我使用下面的表单输入所有详细信息,并使用发布请求将数据保存在 mongodb 中,包括日期:
<form action="/api/books" method="POST">
<div>
<label for="date">Date</label>
<input type="date" name="date" value="" placeholder="" />
</div>
</form>
数据对象的架构模型看起来像这样,我将日期类型用作“日期”。
var schema = new mongoose.Schema({
...
date: {
type: Date,
},
...
})
日期保存在数据库中,如下所示:2022-02-22T00:00:00.000Z。
如果我使用类型:String,那么它会像这样保存在数据库中:Tue Feb 22 2022 06:00:00 GMT+0600(孟加拉国标准时间)。
但我只想以这种格式保存日期:yyyy/mm/dd
我该怎么做?
I have the index.ejs file to output the books object like this:
<tbody>
<% for (let i = 0; i < books.length; i++) { %>
<tr>
<td><%= i+1 %> </td>
<td><%= books[i].name %> </td>
<td><%= books[i].author %> </td>
<td><%= books[i].date %> </td>
<td>
<a href="/update-book?id=<%= books[i]._id %> ">
<span><i class="fas fa-pencil-alt"></i></span>
</a>
<a href="/delete-book?id=<%= books[i]._id %> " >
<span><i class="fas fa-times"></i></span>
</a>
</td>
</tr>
<% } %>
</tbody>
Then, I use this form below to type the all the details and use a post request to save the data in mongodb including the date:
<form action="/api/books" method="POST">
<div>
<label for="date">Date</label>
<input type="date" name="date" value="" placeholder="" />
</div>
</form>
The schema model of the data object looks like this where I used the type for the date as 'Date'
var schema = new mongoose.Schema({
...
date: {
type: Date,
},
...
})
The date gets saved in the database like this: 2022-02-22T00:00:00.000Z.
If I use type: String, then it gets saved in the database like this: Tue Feb 22 2022 06:00:00 GMT+0600 (Bangladesh Standard Time).
But I only want to save the date in this format: yyyy/mm/dd
How do I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那么,您可以使用
$dateToString
聚合管道运算符。例如,您可能希望以
mm/dd/yyyy
格式返回日期,而不是包含分钟、秒、毫秒等的长ISODate()
格式。
$dateToString
运算符将 Date 对象转换为字符串,并且可以选择允许您指定结果输出的格式。让我们在代码中看看:
假设我们有一个名为
cats
的集合,其中包含以下文档:我们可以使用
$dateToString
返回具有不同格式日期的文档。我们可以使用 format 参数来格式化日期。这是一个可选参数,允许您使用零个或多个格式说明符来指示应如何格式化日期。
假设我们想要
dd/mm/yyyy
格式的日期:以下是将日期转换为
dd/mm/yyyy
格式的示例:结果:
您还可以使用
$dateToParts
运算符返回包含所有不同日期部分的文档各自进入自己的领域。我认为这回答了你的问题。
Well, you can use the
$dateToString
aggregate pipeline operator.For example, you might want a date to be returned in
mm/dd/yyyy
format instead of the longISODate()
format that includes minutes, seconds, milliseconds, etcThe
$dateToString
operator converts the Date object to a string, and optionally allows you to specify a format for the resulting output.Let's see this in code:
Suppose we have a collection called
cats
with the following documents:We can use
$dateToString
to return that document with the dates in a different format.We are able to format the date by using the format parameter. This is an optional parameter that allows you to use zero or more format specifiers to indicate how the date should be formatted.
Suppose we want date in
dd/mm/yyyy
format:Here’s an example that converts the dates to
dd/mm/yyyy
format:Result:
You can also use the
$dateToParts
operator to return a document that contains all the various date parts separated into their own field.I think that answers your question.