为什么这些date在从MongoDb获取后导致“无效date”?

我只是想添加一天,然后在那个新的一天使用Moment.Js来表示12:00 AM。 然而,每当我这样做,然后保存它,MongoDB返回date为Invalid Date …为什么?

  date = new Date(Date.UTC(2000, 2, 13)); date = moment.utc( date ); date = date.add(1, 'd'); 

在保存之前,date看起来像这样: date: Sun Feb 13 2000 16:00:00 GMT-0800 (PST)

date如何在我的数据库中查看: 2000-02-14 00:00:00.000Z

但是,从数据库中获取时显示为无效:

 { date: "Invalid Date" day: "02/13/2000" full_date: "02/13/2000 24" hour: "24" } 

此外,所有这样构build的日子将导致Invalid Dates

2000-02-14 00:00:00.000Z在Javascript中不是有效的date格式。

ECMAdate时间string格式

 YYYY-MM-DDTHH:mm:ss.sssZ 

参考date 。

它在时间元素中缺less了T

在你的控制台试试这个:

 >> (new Date("2000-02-14 00:00:00.000Z")).toString() << "Invalid Date" 

 >> (new Date("2000-02-14T00:00:00.000Z")).toString() << "Mon Feb 14 2000 01:00:00 GMT+0100 (CET)" 

请注意,一些浏览器接受前者,如铬,但它是不标准的,并像往常那样痛苦。

Firefox在date上相当严格。