0

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

我得到以下格式的日期。

开始时间:2019-02-12 11:26

结束:2019-13-12 13:14

由于我需要将此日期转换为给定格式,“dd-MM-yy”我尝试使用 datepipe,但第二个日期出现 Invalid pipe argument 错误。->"InvalidPipeArgument: '13-12-2019 13:14' for pipe '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' 格式?

4

2 回答 2

1

JavascriptMM/DD/YYYY默认使用格式,因此当您使用时:

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

13-12-2019 13:14  // This doesnot because there is no 13 month

你可以做什么:

使用以下函数更改日期格式:

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

Working_Demo

于 2019-12-02T10:44:51.327 回答
0

假设您将 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);

// 做你的事

于 2019-12-02T11:06:55.347 回答