新的date()。toISOString()问题
这是一个奇怪的问题。 在我的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()来转换用户input的string“1937-08-03”时,所以我得到了
1937-08-03T00:00:00.000Z
但是当我的date格式更改为08/03/1937,使用Date()。toISOString(),我看到ISOstring为
1937-08-03T04:00:00.000Z
如果你注意到,当我的date格式从yyyy-MM-dd变成MM / dd / yyyy时,我会看到添加了4个小时。 所以显然加上额外的4小时,我不能从数据库(不匹配)拉logging
我如何工作?
我正在使用Node和mongo。 谢谢你的帮助。
好的,这里是我如何处理工作。 我知道我的inputdate格式是MM / dd / yyyy或MM-dd-yyyy,所以我根据/ OR分割string – 使用正则expression式,然后重新格式化为yyyy-mm-dd格式。 如果有人有更好的解决办法,请在这里发布。
var dtArray = inputDate.split(/-|\//); var dtStr = dtArray[2]+'-'+dtArray[0]+'-'+dtArray[1];