代码之家  ›  专栏  ›  技术社区  ›  exequielc

datepipe.transform显示'dd-mm-yyyy'的无效pipeargument

  •  0
  • exequielc  · 技术社区  · 6 年前

    最近AngularDatePipe显示了一个InvalidPipeArgument错误,但字符串日期接缝是正确的。 有人能看到一些错误吗?这是我的代码使用 打字稿 角度6

    let datePipe: DatePipe = new DatePipe("es-ES");
    let dia_sele: string = "";
                    try {
                      let fecha_formateada = this.datePipe.transform('23-01-2019', 'dd-MM-yyyy','es-ES');
                      dia_sele = fecha_formateada;
                    } catch (e) {
                      dia_sele = "";
                      console.log( "->err:" + e);
                    }
    

    这是Chrome Windows控制台中显示的错误:

    core.js:14597 ERROR Error: Uncaught (in promise): Error: InvalidPipeArgument: 'Unable to convert "23-01-2019" into a date' for pipe 'DatePipe'
    Error: InvalidPipeArgument: 'Unable to convert "23-01-2019" into a date' for pipe 'DatePipe'
        at invalidPipeArgumentError (common.js:4013)
        at DatePipe.transform
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Amit Chigadani    6 年前

    不知道你想在这里实现什么。因为输入和输出日期的格式相同。

    但是如果你需要另一种格式的日期,这个解决方案会起作用

    为什么不起作用??

    镀铬 '23-01-2019' 不是有效的日期字符串。偶数

    new Date('23-01-2019')
    

    给予 Invalid Date Chrome中的消息(未在其他浏览器中签入)。您可以在控制台中尝试。

    解决方案 :

    因此,您也可以使用其他分隔符设置日期格式,例如 / 然后表演 DatePipe 在那个日期转换。有关格式的详细信息 here

    例子:

    let myDate = "23-01-2019".replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3")
    let newDate = this.dp.transform(myDate, 'yyyy-MM-dd', 'es-ES');
    

    DEMO