Значение формата datepicker ngx-bootstrap в реактивных формах

Я работаю с этим примером: https://valor-software.com/ngx-bootstrap/#/datepicker#reactive

Как вы видите, значение {{Form.value}} для 'date' имеет формат «date»: «2017-10-14T17: 38: 53.000Z», как можно изменить это на «14/10». / 2017 "в качестве примера, потому что этот формат не проходит проверку моего регулярного выражения!

Я пробовал поиграть с примером кода, а также прочитал всю документацию о модуле DatePicker, но не смог понять, как это сделать!


person Rodriguez David    schedule 30.10.2017    source источник


Ответы (3)


Вы можете использовать обычный javascript метод формата даты. Когда вы выбираете дату, запускайте событие и форматируйте дату. Наконец, установите форматированную дату на formControlName.

Например:

dateFormat("Fri Dec 01 2017 14:41:37 GMT+0530 (India Standard Time)");

dateFormat(date:any){
    let date = new Date(date),
    let month = ("0" + (date.getMonth()+1)).slice(-2),
    let day  = ("0" + date.getDate()).slice(-2);
    let formattedDate=[day,month,date.getFullYear()].join("/");
    this.formName.patchValue({
      date:formattedDate }) 
}
person Dhiva    schedule 12.12.2017

это решение используется для ngx daterangepicker, используемого в реактивной форме, и устанавливает базовое значение для средства выбора диапазона дат.

this.detailForm.controls['range'].setValue([new Date(this.projectData.startDate), new Date(this.projectData.endDate)]);

для сохранения данных используйте это:

if (this.detailForm.get('range').value) { this.projectData.startDate = this.datepipe.transform(this.detailForm.value.range[0], DateFormat.YYYY_MM_DD); this.projectData.endDate = this.datepipe.transform(this.detailForm.value.range[1], DateFormat.YYYY_MM_DD); }

person kiran kirtkar    schedule 11.03.2019

эта проблема помогла мне с той же проблемой, с которой столкнулись вы. https://github.com/valor-software/ngx-bootstrap/issues/2934

В основном это говорит о том, что с объектом (в вашем случае «date» со значением «2017-10-14T17: 38: 53.000Z») вы можете использовать метод с именем .toLocaleDateString (), поскольку ваш объект является типом Date.

ps: Я просто понимаю, что это вы создаете проблему на github (смеется), в любом случае я дам свой ответ здесь, чтобы помочь другим :)

Cya

person Nicolas Peruch    schedule 24.04.2019