gpt4 book ai didi

node.js - 新的 Date().toISOString() 问题

转载 作者:可可西里 更新时间:2023-11-01 10:42:13 25 4
gpt4 key购买 nike

这是一个奇怪的问题。在我的 mongodb 中,我有这样的 ISODate:

ISODate("1937-08-03T00:00:00.000Z")

在我的发现中,我正在做

var isoString = new Date(inputDate).toISOString();
db.collection.find({dob: new Date(isoString)})

'inputDate' cab be yyyy-MM-dd or MM/dd/yyyy

当我使用 Date().toISOString() 转换用户输入的字符串“1937-08-03”时,我得到了

1937-08-03T00:00:00.000Z

但是当我的日期格式更改为 08/03/1937 时,使用 Date().toISOString(),我看到 ISO 字符串为

1937-08-03T04:00:00.000Z

如果您注意到,当我的日期格式从 yyyy-MM-dd 更改为 MM/dd/yyyy 时,我看到增加了 4 个小时。很明显,额外增加了 4 个小时,我无法从数据库中提取记录(不匹配)

我该如何操作?

我正在使用 Node 和 mongo。感谢您的帮助。

最佳答案

好的,这就是我处理工作的方式。我知道我的输入日期格式是 MM/dd/yyyy 或 MM-dd-yyyy,所以我根据/OR 拆分字符串 - 使用正则表达式,然后重新格式化回 yyyy-mm-dd 格式,效果很好。如果有人有更好的解决方案,请在这里发布。

var dtArray = inputDate.split(/-|\//);
var dtStr = dtArray[2]+'-'+dtArray[0]+'-'+dtArray[1];

关于node.js - 新的 Date().toISOString() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37660426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com