nestjs - 嵌套类验证器 minDate 即使日期更大也会抛出错误

我将 Nest 与类验证器一起使用,并尝试使用 @isDateString() 验证 UI 提供的日期是否不早于今天。和 @MinDate()

export class SchemaDto {
    @IsOptional()
    @IsDateString()
    @MinDate(new Date())
    myDate?: Date;
}

我发送的数据是一个反对日期,日期如下:

    Mon Oct 04 2021 00:00:00 GMT-0400 (Eastern Daylight Time)

我从类验证器得到的错误是:

     minimal allowed date for myDate is Fri Oct 01 2021 15:57:18 GMT-0400 (Eastern Daylight Time) 

问题:

如果我删除 minDate 装饰器,一切正常,但我宁愿验证这种常见情况。

信息: typescript :~4.1.4

节点:12.4.0

类验证器:0.13.1

巢:7.0.0

最佳答案

使用@MinDate 进行验证

export class SchemaDto {
    @IsNotEmpty()
    @Transform( ({ value }) => new Date(value))
    @IsDate()
    @MinDate(new Date())
    myDate: Date;
}

但是如果值是可选的,它可能为 null 或未定义,所以:

export class SchemaDto {
    @IsOptional()
    @Transform( ({ value }) => value && new Date(value))
    @IsDate()
    @MinDate(new Date())
    myDate?: Date;
}

https://stackoverflow.com/questions/69411838/

相关文章:

kotlin-coroutines - Kotest 与 kotlinx-coroutines-te

reactjs - 保存我的代码时 Eslint 配置错误

r - 根据 R 中表格的列数过滤列表

python - 使用 matplotlib 3.3+ 更改颜色条限制以更改比例

php - 我们在 PHP 数组中称这个符号 => 什么?

list - Groovy:比较列表忽略其中元素的顺序

arrays - 当我尝试初始化 100 个元素的一维数组并使用指针填充它时出现段错误(核心已转储)

reactjs - 路由在 webpack + react 项目中不起作用

css - Material-UI 下拉列表在对话框中溢出

c# - 如何在 dotnet 中将 ""解析为 long ("0")