新的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];