El canal de fecha en angular se supone que funciona como dice en los documentos: https://angular.io/api/common/DatePipe. Sin embargo cuando corro Today"s date is {{myDate| date:"fullDate"}}
se está imprimiendo La fecha de hoy es 30/01/2018. Y eso es todo, no hay hora, no hay zona horaria. ¿Alguien experimentó esto y encontró una manera de hacerlo funcionar como se supone?
Edición: no importa lo que establezca la fecha en que se imprime la misma fecha.
La fecha se establece como tal.
getDate(date: string) {
//date = "2018-01-30T00:02:14.637Z";
return new Date(date);
}
Lo he intentado de esta manera y utilizando esa cadena directamente en la plantilla y el resultado es el mismo M / D / YYYY
Respuestas
1 para la respuesta № 1La documentación sobre https://angular.io/api/common/DatePipe Se basa en el lanzamiento actual, supongo. Actualmente estoy en @ angular / common 4.2.4 y eché un vistazo a la date_pipe.d.ts.
Faltan los formatos "long", "full", "longTime" y "fullTime".
Así que si no quieres actualizar a Angular 5, puedes "reconstruirlos" combinando los selectores:
* | Component | Symbol | Narrow | Short Form | Long Form | Numeric | 2-digit |
* |-----------|:------:|--------|--------------|-------------------|-----------|-----------|
* | era | G | G (A) | GGG (AD) | GGGG (Anno Domini)| - | - |
* | year | y | - | - | - | y (2015) | yy (15) |
* | month | M | L (S) | MMM (Sep) | MMMM (September) | M (9) | MM (09) |
* | day | d | - | - | - | d (3) | dd (03) |
* | weekday | E | E (S) | EEE (Sun) | EEEE (Sunday) | - | - |
* | hour | j | - | - | - | j (1 PM) | jj (1 PM) |
* | hour12 | h | - | - | - | h (1) | hh (01) |
* | hour24 | H | - | - | - | H (13) | HH (13) |
* | minute | m | - | - | - | m (5) | mm (05) |
* | second | s | - | - | - | s (9) | ss (09) |
* | timezone | z | - | - | z (Pacific Standard Time)| - | - |
* | timezone | Z | - | Z (GMT-8:00) | - | - | - |
* | timezone | a | - | a (PM) | - | - | - |
En mi caso utilicé
{{ dateString | date:""EEEE, MMMM dd, y, hh:mm:ss Z"}}
con salida: "Lunes, 09 de abril de 2018, 03:42:00 GMT + 2"
TL; DR - use fecha: "lleno" si está en Angular v5 o mayor - cree su propia cadena de fecha si está en una versión inferior.
1 para la respuesta № 2
Acabo de intentar esto y full
proporciona la fecha completa. fulldate
solo proporciona la fecha, no la fecha con la hora y la zona horaria.
Mi HTML
<div class="panel-heading">
{{pageTitle}} today: {{ today | date: "full"}}
</div>
En mi componente
today: Date = new Date(Date.now());
El resultado es este:
Observe que la fecha aparece en su formato completo. (Ignorar dónde lo puse ... Estoy usando una de mis aplicaciones de muestra).