时刻日期格式从 Node 更改为 MongoDB
Posted
技术标签:
【中文标题】时刻日期格式从 Node 更改为 MongoDB【英文标题】:Moment date format changing from Node to MongoDB 【发布时间】:2019-10-13 04:00:07 【问题描述】:我在node js中创建一个应用程序并将日期保存到Mongo DB,Mongoose的数据类型,我用来保存的是日期。
moment.locale("pt");
today= moment().startOf("day").format();
日期打印如2019-05-27T00:00:00-03:00
但是当它正在保存时,我试图检索它来自 mongo db 的日期,例如 2019-05-27T03:00:00.000Z
现在比较不起作用。所以我正在根据这个日期查找数据,但它不起作用。
我正在使用巴西的语言环境。我每天从 00:00 到接下来的 24 小时都保存用户详细信息,并对用户进行幸运抽奖。所以我有一个庞大的数据库,想根据今天的日期过滤数据。所以我需要将日期保存在当地时区,即巴西。
任何帮助将不胜感激。
【问题讨论】:
在通过moment UTC
将日期插入数据库之前如何规范化日期(也使用.valueOf()
来获取毫秒),一旦你输出它们 - 转换为相关的语言环境
你怎么解释?
@Aviad,我需要将日期保存在当地时间没有时间,我每天都在做幸运抽奖。
wdym 按“没有时间的本地时间”?只是日期?
@Aviad 是的,我每天从 00:00 到接下来的 24 小时都保存用户详细信息,并为用户抽奖。所以我有一个庞大的数据库,想根据今天的日期过滤数据。所以我需要将日期保存在当地时区,即巴西。
【参考方案1】:
我建议转到UTC
,然后更改语言环境,然后更改日期以匹配当天的开始,然后存储为 ms:
const d = moment
.utc() // Get the UTC time
.locale('pt_BR') // Change locale to Brazil
.startOf('day') // Go back in time to current date @ 00:00:00
.valueOf() // Get ms value
// store d in the database
【讨论】:
moment .utc() .locale('pt_BR')``` 不会将语言环境更改为巴西。 也许locale('br')
?以上是关于时刻日期格式从 Node 更改为 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章