2017-07-06 5 views
1

Ich versuche, ein Datum korrekt auf IE in Angular anzuzeigen. Es funktioniert gut in Chrome, Firefox, etc., aber nicht auf IE. Dies ist mein Code:Angular - Datumsrohr

<span>{{menu.modifiedDate ? (menu.modifiedDate | date : "dd-MM-y HH:mm:ss") : '-'}}</span> 

Dies ist, was Google Chrome zeigt:

15-06-2017 08:39:39 

Und das ist, was IE zeigt:

15-06-2017 08:00:6/15/2017 8:39:39 AM:6/15/2017 8:39:39 AM 

Was ist los?

+0

Ich denke, Sie fehlen Klammern um den Zustand links von Fragezeichen – JGFMK

Antwort

2

Das ist ein altes Problem https://github.com/angular/angular.js/issues/13880

Sie mit einer alten Version arbeiten könnte. Das Upgrade auf die neueste stabile Version sollte das Problem beheben.

+0

Ok, es scheint zu funktionieren, aber ich kann das Datum nicht formatieren. –

+0

Und übrigens, das ist wahrscheinlich kein Bug mit Angular aber mit IE. Also ich weiß nicht, was Sie meinen, indem Sie auf die neueste Version upgraden, sollte den Bug IE beheben. –

+0

Erklären Sie im Detail Ihre Antwort, fügen Sie diese Zeile hinzu, die ich als Antwort akzeptiere. (https://angular.io/api/common/DatePipe) –

0

Es ist ein häufiges Problem auf IE. Die beste Lösung ist, Ihre eigene Leitung wie folgt zu erstellen:

import { Pipe, PipeTransform } from '@angular/core'; 

    @pipe({ 
    name: 'date' 
    }) 

    export class DataPipe implements PipeTransform { 
    transform(value: string): string { 

     let dd = value.substr(8, 2); 
     let MM = value.substr(5, 2); 
     let yyyy = value.substr(0, 4); 
     let date = `${dd}/${MM}/${yyyy}`; 

     return `${date}`; 
    } 
    }` 

Damit sollte es Ihr Problem lösen.

+0

Wie verwende ich es? :) –

+0

Sie fügen diesen Teil des Codes in Ihre Komponente ein und verwenden den Schlüsselnamen 'date' in Ihrem HTML-Teil zum Beispiel:

 {{ date }}
amin89