简体   繁体   中英

Dates in mongoose?

I know that I can set Date.now as a default value in a mongoose schema, but what other Javascript date types or are all dates automatically converted to mongodb´s standard format - ISOdate ?

Are there anything I should be concerned about when it comes to storing dates?

dates: {
    created:  {type: Date, default: Date.now},
}

Thanks

The only thing you should take care of is converting the MongoDB/BSON UTC date to your local timezone (in case you need this).

For more info checkout: http://docs.mongodb.org/manual/reference/bson-types/#document-bson-type-date

Mongoose date casting has a couple of small cases where it differs from JavaScript's native date parsing.
You might be interested in reading how to work with dates, to better understand casting errors and common pitfalls: https://mongoosejs.com/docs/tutorials/dates.html .

  1. Mongoose looks for a valueOf() function on the given object, and calls valueOf() before casting the date. This means Mongoose can cast moment objects to dates automatically.
const moment = require('moment');
const user = new User({
  name: 'Jean-Luc Picard',
  lastActiveAt: moment.utc('2002-12-09')
});
user.lastActiveAt; // "2002-12-09T00:00:00.000Z"
  1. By default, if you pass a numeric string to the Date constructor, JavaScript will attempt to convert it to a year.

    new Date(1552261496289); // "2019-03-10T23:44:56.289Z"
    new Date('1552261496289'); // "Invalid Date"
    new Date('2010'); // 2010-01-01T00:00:00.000Z

Mongoose converts numeric strings that contain numbers outside the range of representable dates in JavaScript and converts them to numbers before passing them to the date constructor.

你需要覆盖到new Date(req.body.time).toString() ,req.body.time是一个时间格式月/日/年或月 - 日 - 月前一天

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM