Estoy usando la tubería de date para formatear mi fecha, pero no puedo obtener el formato exacto que quiero sin una solución alternativa. ¿Estoy entendiendo mal las tuberías o simplemente no es posible?
//our root app component import {Component} from 'angular2/core' @Component({ selector: 'my-app', providers: [], template: ` <div> <h2>Hello {{name}}</h2> <h3>{{date | date: 'ddMMyyyy'}}, should be {{date | date: 'dd'}}/{{date | date:'MM'}}/{{date | date: 'yyyy'}}</h3> </div> `, directives: [] }) export class App { constructor() { this.name = 'Angular2' this.date = new Date(); } }Error de formato de fecha de tubería corregido en Angular 2.0.0-rc.2, esta solicitud de extracción.
Ahora podemos hacerlo de la manera convencional:
{{valueDate | date: 'dd/MM/yyyy'}}Versión actual:
Versiones antiguas:
Importe DatePipe desde angular/common y luego use el siguiente código:
var datePipe = new DatePipe(); this.setDob = datePipe.transform(userdate, 'dd/MM/yyyy');donde userdate será su cadena de fecha. A ver si esto ayuda.
Tome nota de las minúsculas para la fecha y el año:
d - date M - month y - yearEDITAR
Debe pasar la cadena de locale como argumento a DatePipe, en el último angular. He probado en angular 4.x
Por ejemplo:
var datePipe = new DatePipe('en-US');Puede lograr esto usando una tubería personalizada simple.
import { Pipe, PipeTransform } from '@angular/core'; import { DatePipe } from '@angular/common'; @Pipe({ name: 'dateFormatPipe', }) export class dateFormatPipe implements PipeTransform { transform(value: string) { var datePipe = new DatePipe("en-US"); value = datePipe.transform(value, 'dd/MM/yyyy'); return value; } }Modelo:
{{currentDate | dateFormatPipe }}La ventaja de usar una tubería personalizada es que, si desea actualizar el formato de fecha en el futuro, puede ir y actualizar su tubería personalizada y se reflejará en todas partes.