/ / Tubería de fecha con angular no funciona como se anuncia - angular

Fecha tubo con angular no funciona como se anuncia - angular

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 № 1

La 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:

enter image description here

Observe que la fecha aparece en su formato completo. (Ignorar dónde lo puse ... Estoy usando una de mis aplicaciones de muestra).