这是一个奇怪的问题。在我的mongodb中,我有这样的东西:
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
当我转换用户输入的字符串' 1937-08-03'使用Date()。toISOString(),所以我得到了
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。谢谢你的帮助。
答案 0 :(得分:1)
好的,我是如何处理这项工作的。我知道我的输入日期格式是MM / dd / yyyy或MM-dd-yyyy所以我根据/ OR分割字符串 - 使用正则表达式,然后重新格式化回yyyy-mm-dd格式,它工作正常。如果有人有更好的解决方案,请在此处发布。
var dtArray = inputDate.split(/-|\//);
var dtStr = dtArray[2]+'-'+dtArray[0]+'-'+dtArray[1];