2017-06-30 21 views
2

Ich muss mein Datumsformat ändern, das Problem ist, dass ich Moment.js nicht verwenden kann, ich brauche nur Datum von JJJJ-MM-TT in TT-MM-JJJJ zu transformieren. Ich benutze angular v 2.4.0.Datumsformat ändern Winkel 2

Antwort

14

Verwenden DatePipepipe

date_expression | date[:format] 

in Ihrem Fall

{{ date_expression | date:'dd-MM-yy' }} 

Wie das Rohr innerhalb der Komponente verwenden:

NgModule({ 
    .... 
    providers: [DatePipe] 
}) 

oder

@Component({ 
    .... 
    providers: [DatePipe] 
}) 

In Sie Komponentensatz als date Variable

constructor(private datePipe: DatePipe) { 
} 

ngOnInit() { 
    this.date = this.datePipe.transform(new Date(), 'dd-MM-yy'); 
} 
+0

Ye, es sieht sehr einfach, aber ist es möglich, diese zu setzen {{date_expression | date: 'dd-MM-yy'}} in die Variable (ich muss sie später in die Klasse einfügen) Ich meine Variable = {{date_expression | Datum: 'TT-MM-JJ'}} –

+0

Ich habe meine Antwort bearbeiten –

+0

Vielen Dank, das ist, was ich bekommen wollte :) –

1

Was Sie tun können, ist eine Funktion wie diese

function formatDate() { 
    let addZeroToLoneFigure = (n) => n.toString().length === 1 ? '0' + n : n.toString(); 
    let format = 'DD-MM-YYYY'; 
    let d= new Date(); 
    format.replace('DD', addZeroToLoneFigure(d.getDate())); 
    format.replace('MM', addZeroToLoneFigure(d.getMonth() + 1)); 
    format.replace('YYYY', addZeroToLoneFigure(d.getFullYear())); 
    return format; 
} 
+0

Ye, es sieht sehr einfach aus, aber ist es möglich zu setzen dies {{Datum_Ausdruck | date: 'dd-MM-yy'}} in die Variable (ich muss sie später in die Klasse einfügen) Ich meine Variable = {{date_expression | Datum: 'TT-MM-JJ'}} –

+0

Ich habe nicht bekommen, was Sie wollen, aber meine Funktion gibt etwas zurück, also tun Sie einfach 'myVar = this.formatDate(); ' – trichetriche

2

schaffen Sie es benutzerdefinierte Rohr zu schaffen machen kann. Siehe untenstehenden Code. Weitere Informationen finden Sie unter DatePipe Documentation.

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

@Pipe({ 
    name: 'customDateFormat', 
}) 
export class customDateFormatPipe implements PipeTransform { 
    transform(value: string) { 
     var datePipe = new DatePipe("en-US"); 
     value = datePipe.transform(value, 'dd-mm-yyyy'); 
     return value; 
    } 
} 

individuelle Rohr in HTML hinzufügen, wie unten dargestellt:

{{currentDate | customDateFormat }} 
+1

Ye, es sieht sehr einfach aus, aber Ist es möglich, dies {{date_expression | date: 'dd-MM-yy'}} in die Variable (ich muss sie später in die Klasse einfügen) Ich meine Variable = {{date_expression | Datum: 'TT-MM-JJ'}} –

+0

@ JędrekMarkowski: Aber wenn Sie eine beliebige Bibliothek in Zukunft wie momentJS oder andere verwenden möchten. Sie müssen an einer Stelle ändern, um auf allen Seiten Wirkung zu erzielen. Irgendwelche Möglichkeiten, wie Sie eine Lösung bekommen. :-) –