Угловой формат даты и времени

У меня есть этот массив json со строками даты и времени. и я заполняю эти данные в таблице.

[{"id":8,"startdate":"2018-02-01T00:00:00","enddate":"2018-02-28T23:59:59.9999999","created":"2018-02-15T12:58:43.3417189","filename":"data022018"},{"id":9,"startdate":"2019-03-01T00:00:00","enddate":"2019-03-31T23:59:59.9999999","created":"2019-03-15T12:59:45.1079351","filename":"data032019"},{"id":10,"startdate":"2019-04-01T00:00:00","enddate":"2019-04-30T23:59:59.9999999","created":"2019-04-08T12:58:43.3417189","filename":"data042019"}]

это html-код в моей таблице

<td>{{ archive.startdate | date: 'short' }} - {{ archive.enddate | date: 'dd/MM/yyyy' }}</td>

результат

2/1/18, 12:00 AM - 01/03/2018 (just want to show i format with different methods)
1/4/2018 - 1/5/2018

чего я действительно хочу добиться, так это последней даты, которая должна быть в последний день месяца, а не начинаться с первого дня следующего месяца.

1/02/2018 - 28/02/2018

Что я сделал не так? Я хочу взять день окончания, месяц и год.

Ответы благодаря @Wandrille

//model
export interface Archive {
    id?: string | number;
    startdate: string | Date; <-- use as string or date object
    enddate: string | Date;
    created: string | Date;
    filename: string;
}

 // component
 this.db.getFiles(
  this.currentPage,
  this.pageSize
  ).subscribe(result => {
    this.totalArchives = result.totalitems;
    this.archives = result.items.map(myitem => ({
      ...myitem,
      startdate: new Date(myitem.startdate), <-- after init as new date, date pipe work as expected
      enddate: new Date(myitem.enddate) <-- date pipe works
    }));
    if (this.totalArchives === '0' || this.totalArchives === 0) {
      this.toastr.info('No Files Yet', 'Waiting for files to generate');
    }

  });
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
290
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете преобразовать строку даты в Дата. и тогда он будет работать (а также будет чище)

this.archive = this.archive.map(item => (
   {
    ...item,
    startdate : new Date(item.startdate),
    endDate : new Date(item.endDate)
   }
))

Это по стоимости после :

Попробуйте так

{{ startdate.split(":")[0]| date: 'short'}} 
 <br>
{{ enddate.split(":")[0]| date: 'short'}}

См. подробности здесь

Другие вопросы по теме