Angular Формат даты FormControl не тот формат, который я хочу в json - PullRequest
0 голосов
/ 30 января 2020

Я работаю над Angular веб-приложением. Я получаю данные из ReactiveForm, и проблема в том, что когда я получаю дату в значении json формы, формат «ГГГГ-ММ-ДД» (формат ввода даты), тогда как я хочу, чтобы формат «ГГГГММДД» (без -) в мой json. Мне нужен этот формат, потому что я отправляю значение в пост-запросе в API.

Я уже искал, как изменить формат ввода, но ничего не нашел.

Можете ли вы помочь мне

Как мне разобрать json, чтобы он соответствовал моей форме (мне нужно преобразовать дату в формат ввода):

this.mapStringToDateInputFormat(dayInformation);

mapStringToDateInputFormat(value: any) {
  const initialDateString: string = value.date;
  const year = initialDateString.substr(0, 4);
  const month = initialDateString.substr(4, 2);
  const day = initialDateString.substr(6, 2);
  value.date = `${year}-${month}-${day}`;
}

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Мне нужен этот формат, потому что я отправляю значение в пост-запросе в API.

ну, вам нужно решить, с какими данными вы хотите работать. И измените службу, чтобы ваш компонент работал с данными такого рода. Например, у вас может быть услуга с этими функциями:

getData(id)
{
    return this.httpClient(....).pipe(map((x:any)=>{
        x.date=x.date.substr(0, 4)+'-'+x.date.substr(4, 2)+'-'+
               x.datesubstr(6, 2);
        return x
    }))
}
getListData()
{
    return this.httpClient(....).pipe(map((res:any[])=>{
        res.forEach((x:any)=>
        {
           x.date=x.date.substr(0, 4)+'-'+x.date.substr(4, 2)+'-'+
               x.datesubstr(6, 2);
        })
        return res
    })
}

//when you insert/update
insert(data:any)
{
     data.date=data.date.substr(0, 4)+data.date.substr(5, 2)+
               data.datesubstr(8, 2);
     this.http.post(...,data)
}

Если в будущих улучшениях измените способ получения данных, вам нужно только изменить услугу в соответствии с этим изменением

0 голосов
/ 30 января 2020

Использование момента в вашем приложении упрощает преобразование даты и времени

установка момента js на npm

npm install moment --save  

В вашем файле TS импортируйте его следующим образом и используйте момент для ваших операций, связанных с конверсией

import moment from 'moment';


date="2018-08-23"
convrtdDate=moment(this.date).format(''YYYYMMDD'') //20180823
...