如何在查找查询或检索时将UTC日期转换为mongoose中用户指定的时区
我们需要在执行查找查询或检索时将mongodb中存储的日期转换为用户指定的时区 这适用于所有日期。我们正在使用nodejs/mongoose 我尝试使用聚合投影datetostring,但似乎没有效果 任何人都可以分享如何实现它吗 我在下面试过,但没有效果。程序是我的模型如何在查找查询或检索时将UTC日期转换为mongoose中用户指定的时区,mongoose,Mongoose,我们需要在执行查找查询或检索时将mongodb中存储的日期转换为用户指定的时区 这适用于所有日期。我们正在使用nodejs/mongoose 我尝试使用聚合投影datetostring,但似乎没有效果 任何人都可以分享如何实现它吗 我在下面试过,但没有效果。程序是我的模型 Program.findById(req.params.programId,"-ae_config"/*, {"$expr": [{ "$project": { date: { $dateToS
Program.findById(req.params.programId,"-ae_config"/*, {"$expr": [{
"$project": {
date: { $dateToString: { "format": "%Y-%m-%d", date: "programStartDate", timezone: "America/New_York"} },
}
}]}*/).populate('roles').exec(function (err, program) {
我认为数据库应该只处理UTC,在其他时区转换是一个前端问题(因此用户可以选择他们的时区等)。@Alex完全正确。无论您做什么,都要将所有日期时间存储在UTC中,并通过相应地调整搜索参数来处理您的需求。您必须有一个单一的标准方法来知道存储的所有值,以便有一个单一的方法来跨这些值进行查询。UTC绝对是您的答案。我们以UTC格式存储在mongo DB中。我在nodejs的中间层或API端工作。。当我在将数据传递到UI的同时从DB进行查询时,我们试图在用户本地时区中进行转换。e、 g如果UTC日期为UTC凌晨3:00,如果登录的用户时区为EST,则应显示为晚上10点,因为我发布了我正在尝试使用datetostring聚合,但该聚合似乎不起作用,似乎不起作用?也许是在“抛出错误”中?如果你真的犯了一个错误,那么你需要在你的问题中说出来。“不工作”不是一个足够具体的说法。如果它与“错误”不同,那么你也需要证明这一点。但很可能是因为您没有MongoDB 3.6,正如文档页面告诉您的那样,实际上需要使用
“时区”
选项。