Как работать с датой и временем в NodeJS, Mongoose и TypeScript? - PullRequest
0 голосов
/ 24 декабря 2018

Я из мира Java и начинаю с NodeJS.Мне трудно понять, как работать с датами и временем в NodeJS.

Только даты и только часы.

Вот пример:

export interface teste extends mongoose.Document {
    description: string,
    dateTest: ????,
    openingTime: ????,
    finalTime: ????,
    dateTimeRecord: ????
}

const testeSchema = new mongoose.Schema({
    description:{
        type: String,
        required: true,
        maxlength: 200,
        minlength: 3
    },
    dateTest:{
        type: ?????,
        required: true
    },
    openingTime:{
        type: ?????,
        required: true
    },
    finalTime:{
        type: ?????,
        required: true
    },
    dateTimeRecord:{
        type: ?????,
        required: true
    }
}

export const Teste = mongoose.model<Teste>('Teste', testeSchema)

Во всех местах, которые я оставил ?????Я не знаю, что поставить.

  • В dateTest мне нужно записывать только даты, без часов.
  • В opensTime и finalTime мне нужно хранить только часы,без дат.
  • В dateTimeRecord мне нужно сохранить момент, когда что-то произошло (дата и время).

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 01 января 2019

в Mongoose у вас есть тип даты, вы можете установить дату по умолчанию (на самом деле она использует ISODate), вы можете кодировать ее следующим образом

const testeSchema = new mongoose.Schema({
    description:{
        type: String,
        required: true,
        maxlength: 200,
        minlength: 3
    },
    dateTest:{
        type: Date,
        default:Date.now // this sets the default date time stamp using proper ISODate format
        required: true
    },
    openingTime:{
        type: Date,
        required: true
    },
    finalTime:{
        type: Date,
        required: true
    },
    dateTimeRecord:{
        type: Date,
        required: true
    }
}

вы можете прочитать больше в документации mongoose здесь

0 голосов
/ 24 декабря 2018

Мангуст имеет тип Date. (Документы здесь) Заменить ???с Date и у вас все будет готово.

...