猫鼬将所有日期保存为可以的UTC格式。
每个用户都有一个特定的时区。它将存储在用户的文档中。
我想发送任何文档,并将其日期转换为用户所在时区的客户端。
我知道如何设置一个值的格式,但是我正在寻找一种避免一一转换的解决方案。
解决方法将是客户端上针对每个值或递归修改响应的传递转换功能。
有什么想法吗?
答案 0 :(得分:0)
您可以汇总进行此操作。
让我们说您有此数据:
[
{
"_id": {
"$oid": "5f18b5c87f9f9c0fd8322b60"
},
"createdAt": {
"$date": "2020-07-22T21:55:20.575Z"
},
},
{
"_id": {
"$oid": "5f19efac5cfa75483865eaa2"
},
"createdAt": {
"$date": "2020-07-23T20:14:36.108Z"
},
}
]
您可以执行以下操作:
const timezone = "America/Chicago"
Model.aggregate([
{
$set: {
localTime: {
$dateToString: {
date: "$createdAt",
timezone
}
}
},
}
]);
聚合的结果将是:
[
{
"_id": ObjectId("5f18b5c87f9f9c0fd8322b60"),
"createdAt": ISODate("2020-07-22T21:55:20.575Z"),
"localTime": "2020-07-22T16:55:20.575Z"
},
{
"_id": ObjectId("5f19efac5cfa75483865eaa2"),
"createdAt": ISODate("2020-07-23T20:14:36.108Z"),
"localTime": "2020-07-23T15:14:36.108Z"
}
]