Esta es la solución más correcta que te podemos compartir, pero primero estúdiala pausadamente y analiza si se adapta a tu trabajo.
Solución:
Estás usando ng-bootstrap, no ng2-bootstrap (diferentes grupos). El código detrás de esto usa el NgbDateStruct
que es un objeto day, month, year
En el envío, deberá conectarse y cambiar el valor a otra cosa, como:
onSubmit():
let ngbDate = this.form.controls['due_date'].value;
let myDate = new Date(ngbDate.year, ngbDate.month-1, ngbDate.day);
let formValues = this.form.value;
formValues['due_date'] = myDate;
<...>
http.post(url, formValues);
https://ng-bootstrap.github.io/#/components/datepicker
NgbDateStruct Interfaz del modelo de las directivas NgbDatepicker y NgbInputDatepicker
Propiedades
día Tipo: número El día del mes, comenzando en 1
mes Tipo: número El mes, con el calendario predeterminado usamos ISO 8601: 1=Ene … 12=Dic
año Tipo: número El año, por ejemplo 2016
Como mencionó @silentsod, debe convertir el objeto de fecha que usa el selector de fecha del NgbDateStruct
formato en un string
formato. ng-bootstrap proporciona una función para convertir una fecha en el NgbDateStruct
formato a la ISO 8601
formato (aaaa-mm-dd). No tiene que escribir uno propio si usa ese formato:
import NgbDateParserFormatter from '@ng-bootstrap/ng-bootstrap';
...
constructor(private ngbDateParserFormatter: NgbDateParserFormatter; ... )
...
...
onSubmit():
let ngbDate = this.form.controls['due_date'].value;
let myDate = this.ngbDateParserFormatter.format(ngbDate); // e.g. myDate = 2017-01-01
...
Ver: https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/datepicker/ngb-date-parser-formatter.ts
Puede implementar su propio método para convertirlo al formato DD-MM-YYYY que necesite.
O dependiendo del orden de los elementos en la declaración de devolución y un separador, puede crear cualquier otro formato que desee.
Implementación:
formatDate(d: NgbDate): string
if (d === null)
return null;
return [
(d.day < 10 ? ('0' + d.day) : d.day),
(d.month < 10 ? ('0' + d.month) : d.month),
d.year
].join('-');
Si tienes alguna desconfianza y capacidad de limar nuestro escrito eres capaz de añadir una crónica y con deseo lo interpretaremos.