today tengo una variable de fecha angular en la que estoy usando la tubería de fecha , así:
{{today | date:'LLLL d'}}13 de febrero
Sin embargo, me gustaría que se viera así:
13 días en lo que va de febrero
Cuando intento un enfoque ingenuo para esto, obtengo este resultado:
{{today | date:'d days so far in LLLL'}}13 13PM201818 18o fPMr en febrero
Esto se debe a que, por ejemplo, d se refiere al día.
¿Cómo puedo escapar de estos caracteres en una tubería de fecha angular? Intenté \d y tal, pero el resultado no cambió con las barras invertidas agregadas.
Qué tal esto:
{{today | date:'d \'days so far in\' LLLL'}}Todo lo que esté dentro de comillas simples se ignora. No olvides escapar de ellos.
Esto funciona para mí {{hoy | date:"d 'días hasta ahora en' LLLL"}}
Entonces, la única otra alternativa para encadenar varias canalizaciones como lo sugiere RichMcCluskey sería crear una canalización personalizada que llame al formato momentjs con la fecha pasada. Entonces podría usar la misma sintaxis, incluida la secuencia de escape que admite momentjs.
Algo como esto podría funcionar, no es una solución exhaustiva ya que no se ocupa de la localización en absoluto y no hay código de manejo de errores o pruebas.
import { Inject, Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'momentDate', pure: true }) export class MomentDatePipe implements PipeTransform { transform(value: any, pattern: string): string { if (!value) return ''; return moment(value).format(pattern); } }Y luego el código de llamada:
{{today | momentDate:'d [days so far in] LLLL'}}Para todos los especificadores de formato, consulte la documentación de format .
Tenga en cuenta que debe importar momentjs como una declaración de importación, importarlo en su archivo de configuración cli o hacer referencia a la biblioteca desde la página HTML raíz (como index.html).