如何在 NodeJS、Mongoose 和 TypeScript 中使用日期和时间?

Posted

技术标签:

【中文标题】如何在 NodeJS、Mongoose 和 TypeScript 中使用日期和时间?【英文标题】:How to work with Date and Time in NodeJS, Mongoose and TypeScript? 【发布时间】:2019-05-23 06:02:17 【问题描述】:

我来自 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 中,我只需要记录日期,而不需要记录时间。 在 openingTime 和 finalTime 中,我只需要存储小时数,没有日期。 在 dateTimeRecord 中,我需要存储发生某事的时刻(日期和时间)。

如何做到这一点?

【问题讨论】:

【参考方案1】:

Mongoose 有一个Date 类型。 (Docs here) 替换 ???和Date 一起,你应该准备好了。

【讨论】:

【参考方案2】:

在 Mongoose 中,你有一个 Date 类型 您可以设置默认日期(实际上它使用 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
    

您可以在猫鼬文档here中阅读更多内容

【讨论】:

以上是关于如何在 NodeJS、Mongoose 和 TypeScript 中使用日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Express 和 NodeJS 中针对 Mongoose 错误进行错误处理。

如何使用 mongoose 和 NodeJs 在 Mongodb 的数组字段中插入数据

如何在 NodeJS 和 Mongoose 中填充需要引用用户名的帖子

如何使用 mongoose 和 nodejs 删除嵌套在 Post 模式中的评论?

如何使用 Mongoose、Express、Angular 4 和 NodeJS 上传/保存和显示图片

如何阻止在 Mongoose 数组中创建重复项 | NodeJS 猫鼬