ng-bootstrap как получить формат строки или даты без объекта

#angular #datepicker #ng-bootstrap

#angular #выбор даты #ng-bootstrap

Вопрос:

Я использую ng-bootstrap Datepicker примерно так, как здесь: пример plnkr

но теперь после выбора даты я получаю объект

 Model: {
  "year": 2016,
  "month": 10,
  "day": 13
}
 

Но я хотел бы получить дату в этом формате 2016-10-17

Ответ №1:

Вы можете использовать NgbDateParserFormatter

 import {NgbDateParserFormatter} from '@ng-bootstrap/ng-bootstrap';

constructor(private parserFormatter: NgbDateParserFormatter) {}
...
let date = this.parserFormatter.format(this.model);
 

Плунжер

Комментарии:

1. Спасибо за этот совет. Сработало для меня. Я действительно не понимаю, почему (настраиваемый или по умолчанию) форматировщик не интегрирован по умолчанию в сортировку и отмену сортировки между полями выбора даты и ввода текста.

Ответ №2:

Вы можете извлечь определенные свойства объекта и создать свою строку даты следующим образом:

 let date = this.Model.year   '-'   this.Model.month   '-'   this.Model.day
 

Ответ №3:

вы можете написать машинописный текст, как показано ниже.

 date: NgbDateStruct;

ngOnInit(){

   this.date = {
     year: 2016,
     month: 10,
     day: 17
   }

}
 

и печатать в HTML

 <span>{{  date  }}</span>
 

Ответ №4:

Приведенное ниже решение работает для angular 5-6-7-8-9:

Импорт:

импортируйте { NgbDateParserFormatter} из ‘@ng-bootstrap/ng-bootstrap’;

конструктор:

частный синтаксический анализатор: NgbDateParserFormatter

Получить значение:

this.empForm.value.dobField = this.parserFormatter.format(this.empForm.value.Добфилд);

setValue:

this.empForm.get(‘dobField’).setValue(this.parserFormatter.parse(this.empForm.value.Добфилд));