1

我有一个nestjs 应用程序,它的模式非常繁重。据我了解,日期存储在没有时区的 mongo 中。我的 API 接受带有时区偏移的 ISO 格式的时间。

插入以下对象{"date": "2009-06-30T18:30:00+11:00"}

将在 mongo 数据库中生成以下文档{date: ISODate('2009-06-30T07:30:00.000Z'), _id: "..."}

所以时区偏移量丢失了。

有没有一种优雅的方法来保持时区偏移量并在 GET 请求中提供具有相同偏移量的 ISO 字符串?也许利用类转换器并将偏移量存储在单独的属性中?如果是,如何?

这是涉及的课程。(这里没有显示 GET 请求的专用 ItemDto。)

Dto:

export class CreateItemDto {

  // Some other props are here

  /**
   * Date of this Information.
   * @example "1900-01-01T05:00:00.000+05:00"
   */
  @IsNotEmpty()
  @IsDate()
  @Type(() => Date)
  date: Date;
}

架构:

export class ItemSchema {

  // Some other props are here

  @Prop({ type: Date, required: true })
  date!: Date;
}
4

1 回答 1

0

在许多情况下,客户端应用程序将转换并显示当前本地时区的时间,无论时间戳是在哪个时区插入的。

如果这对您来说还不够,那么您必须将时区信息与实际时间戳一起存储在单独的字段中。

于 2021-02-19T12:14:33.527 回答