Saltar al contenido

formato de selector de fecha ng-bootstrap

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *