【问题标题】:How to validate date using DatePipe in Angular 5 app?如何在 Angular 5 应用程序中使用 DatePipe 验证日期?
【发布时间】:2019-04-22 10:48:15
【问题描述】:

我有带有 bsConfig 的 bsDatepicker,我正在尝试验证它,以确保它具有正确的格式。问题是 bsDatepicker 以不同的格式创建日期,所以我无法验证它。

日期字符串是:

Mon Apr 01 2019 19:05:36 GMT+1100 (Australian Eastern Daylight Time)

我正在尝试使用 DatePipe 对其进行转换,例如:

dateStr = this.datepipe.transform(date.toDateString(), 'MM/dd/yyyy');

我得到的是空值。预期结果将是 2019 年 4 月 1 日。 知道为什么日期管道无法转换吗? 谢谢。

【问题讨论】:

  • 您的问题解决了吗?有没有被接受的答案?

标签: angular date date-pipe


【解决方案1】:

不知道为什么 toDateString() 到那个时候。你可以像这样解析到日期

this.dateStr = this.datePipe.transform(new Date(date.toDateString()) ,'MM/dd/yyyy');

演示:https://stackblitz.com/edit/angular-datepipe-in-component-test

【讨论】:

    【解决方案2】:
    private static datePipeEn: DatePipe = new DatePipe('en-US');
    

    解决了我的问题,希望对有类似问题的人有所帮助!

    【讨论】:

      【解决方案3】:

      date.toDateString 你缺少括号 date.toDateString()

      【讨论】:

      • 我加了括号,还是没有变化。
      【解决方案4】:

      可以使用 Datepipe 将 typescript 中的日期转换为 'yyyy-MM-dd' 格式

      import { DatePipe } from '@angular/common'
      
      constructor(public datepipe: DatePipe){}
      
      myFunction(){
       this.date=new Date();
       let latest_date =this.datepipe.transform(this.date, 'mm-dd-yyyy');
      }
      

      只需在 app.module.ts 的 'providers' 数组中添加 Datepipe。像这样:

      import { DatePipe } from '@angular/common'
      
      providers: [DatePipe]
      

      【讨论】:

      • dateStr = this.dp.transform(new Date(date), 'MM-dd-yyyy') 抛出异常
      • 什么样的异常
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 2015-02-25
      相关资源
      最近更新 更多