Angular 角度确定的日期格式错误

Angular 角度确定的日期格式错误,angular,date-formatting,date-pipe,Angular,Date Formatting,Date Pipe,我一直在使用Angular 5来显示时间线。开始和结束日期存储在通过REST从后端发送的DB中 我得到的日期格式如下 开始时间:2019年12月2日11:26 完:2019年12月13日13:14 由于我需要将此日期转换为给定格式,“dd-MM-yy”,我尝试使用datepipe,但第二个日期的管道参数错误无效。->“InvalidPipeArgument:'13-12-2019 13:14'用于管道'DatePipe'” 然后我试着用打印机打印日期 Date startDate = new D

我一直在使用Angular 5来显示时间线。开始和结束日期存储在通过REST从后端发送的DB中

我得到的日期格式如下

开始时间:2019年12月2日11:26

完:2019年12月13日13:14

由于我需要将此日期转换为给定格式,“dd-MM-yy”,我尝试使用datepipe,但第二个日期的管道参数错误无效。-><代码>“InvalidPipeArgument:'13-12-2019 13:14'用于管道'DatePipe'”

然后我试着用打印机打印日期

Date startDate = new Date(startDateIn);
Date endDate = new Date (endDateIn);
输出:

Start Date:  Tue Feb 12 2019 11:26:00 GMT+0530 (India Standard Time)
End Date:  Invalid Date

有没有办法让Angular知道输入日期是“dd-mm-yyyy HH:mm”格式的?

Javascript使用
mm/dd/yyyy
格式作为默认格式,因此当您使用:

02-12-2019 // This works but with invalid date - 12 Feb 2019

您可以做什么:

使用以下功能更改日期的格式:

changeDateFormat(date: string) {
  var dateParts = date.substring(0, 10).split("-");
  var ddMMYYYYDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);
  return ddMMYYYYDate;
}

假设startDate和endDate是全局变量

  startDate: Date = new Date();

  endDate: Date = new Date();
//将构造函数定义为

constructor(private _datePipe: DatePipe)
现在使用本地方法

var start= "02-12-2019 11:26";
var end="12-13-2019 11:26";      

this.startDate = <Date>(this._datePipe.transform(start, 'yyyy-MM-dd') as any);
   this.endDate = <Date>(this._datePipe.transform(end, 'yyyy-MM-dd') as any);
var start=“02-12-2019 11:26”;
var end=“12-13-2019 11:26”;
this.startDate=(this._datePipe.transform(开始时为'yyyy-MM-dd');
this.endDate=(this._datePipe.transform(end,'yyyy-MM-dd'),如有);

//你能给我们提供一个stackblitz和你的错误吗:)?我还没有用过它。我会试试。因为
MM-DD-YYYY
Javascript的默认格式,您必须手动格式化它!你可以在这里找到Stackblitz。我试图重现这个错误。我得到了第一个输入字符串的正确日期,但是第二个字符串有一个错误。另外,在使用html内联日期管道时,我得到了第一个日期的输出,尽管这不是我想要的。第二次约会没有输出。@PrashantPimpale我该怎么做?你可以在这里找到Stackblitz。我试图重现这个错误。我得到了第一个输入字符串的正确日期,但是第二个字符串有一个错误。另外,在使用html内联日期管道时,我得到了第一个日期的输出,尽管这不是我想要的。没有第二个日期的输出。它可以工作,但日期错误。来自后端的日期是2019年12月2日,“mm dd yy”将给出2月12日2019@VishnuSoman你试过贴出的答案了吗?它能解决你的问题吗?
var start= "02-12-2019 11:26";
var end="12-13-2019 11:26";      

this.startDate = <Date>(this._datePipe.transform(start, 'yyyy-MM-dd') as any);
   this.endDate = <Date>(this._datePipe.transform(end, 'yyyy-MM-dd') as any);