正在开发一项功能,我需要以 dd-mm-yyyy
格式显示存储在 mongodb 中的时间戳。但我对如何编写查询以获取所需格式的时间戳感到困惑。
下面是下拉列表集合的示例数据。
/* 1 */
{
"_id" : ObjectId("5e787e988f3b3f3a240e846e"),
"status" : true,
"company" : ObjectId("5e787e988f3b3f3a240e846d"),
"type" : "ticketstatus",
"name" : "Open",
"createdAt" : ISODate("2020-03-23T09:17:12.374Z"),
"updatedAt" : ISODate("2020-03-23T09:17:12.374Z")
}
/* 2 */
{
"_id" : ObjectId("5e787e988f3b3f3a240e846f"),
"status" : true,
"company" : ObjectId("5e787e988f3b3f3a240e846d"),
"type" : "ticketstatus",
"name" : "Closed",
"createdAt" : ISODate("2020-03-23T09:17:12.374Z"),
"updatedAt" : ISODate("2020-03-23T09:17:12.374Z")
}
/* 3 */
{
"_id" : ObjectId("5e7883ce8f3b3f3a240e8472"),
"status" : true,
"company" : ObjectId("5e787e988f3b3f3a240e846d"),
"type" : "ticketpriorities",
"name" : "High",
"createdAt" : ISODate("2020-03-23T09:39:26.167Z"),
"updatedAt" : ISODate("2020-03-23T09:39:26.167Z")
}
到目前为止正在使用的查询,
dropdowns.find({"company":ObjectId('5e787e988f3b3f3a240e846d')});
获取日期的正确方法是什么?我是否需要编写查询,或者是否需要使用代码行操作查询返回的数据?请建议我最好和最常用的方法。谢谢。
最佳答案
您应该使用类似 moment 的库在客户端格式化日期。或date-fns 。
例如,使用 date-fns:
import { format } from 'date-fns'
format(new Date(), "dd-MM-yyyy")
// 16-04-2020
date-fns 是当今首选的库,因为它是模块化的,这意味着您只能导入您需要的函数(无隶属关系)。请务必考虑最终用户的时区。
如果您想在服务器端执行此操作,请使用 $dateToString 进行聚合,如上面的评论中所述:
db.collection.aggregate([
{
"$match": {
company: ObjectId("5e787e988f3b3f3a240e846d")
}
},
{
"$project": {
createdAt: {
$dateToString: {
format: "%d-%m-%Y",
date: "$createdAt"
}
},
updatedAt: {
$dateToString: {
format: "%d-%m-%Y",
date: "$updatedAt"
}
},
}
}
])
工作示例 here .
关于javascript - 如何使用 mongoose 和 node.js 将 mongodb 时间戳转换为 dd-mm-yyyy 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61243131/