2017-02-25 4 views
0

Ich habe eine Methode das Datum wie dieserUngültige Datetime in Typoskript

private  modifyDate(dateString: string): Date { 
    let formattedDate= new DatePipe(Defaults.APPLICATION_LOCALE).transform(new DateIEPipe().transform(dateString), 'shortDate'); 
    let newFormattedDate: Date = new Date(formattedDate); 
    return newFormattedDate; 
} 

Eingang zu dieser Methode, wie wäre zu ändern „2017-01-23T14: 09: 19 + 0100“, dh eine Zeichenfolge

Ich verwende eine Pipe, um den String so zu formatieren, dass er eine Zeitzone hat.

@Pipe({ 
    name: 'dateIE' 
}) 
export class DateIEPipe implements PipeTransform { 

    transform(input:String): any { 

        if(input.trim() == "") return input; 
        // Check if timezone present in the date string? 
        let splits = input.split("+"); 
        let formattedTZ = ""; 
        if(splits.length > 1) { 
            formattedTZ = splits[1].substr(0, 2).concat(":").concat(splits[1].substr(2)); 
            return splits[0].concat("+").concat(formattedTZ); 
        } else { 
            return input; 
        } 
    } 
} 

Diese Pipe würde Datumszeichenfolge wie 23.01.2017 09:19 zurückgeben. Jetzt möchte ich dies in "Date" umwandeln, also versuche ich "let newFormattedDate: Date = new Date (formatedDate);" aber ich bekomme es als ungültiges Datum. Wie löst man das?

+0

Was ist Ihre Defaults.APPLICATION_LOCALE .. ?? –

+0

@VivekSingh Es ist für die Einstellung Gebietsschema und ich habe Standard-Gebietsschema zu en_US – Protagonist

Antwort

1

Basierend auf Ihrem Code habe ich eine plnkr here erstellt und es gibt mir die erforderliche Ausgabe.

Modified Ihre private Funktion,

private modifyDate(dateString: string): Date { 
    let d = new DatePipe('en-US'); 
    return d.transform(new DateIEPipe().transform(dateString),'short'); 
} 

Für weitere Informationen über DatePipe Angular docs beziehen und für Examples here

Hoffe, es hilft.

+0

Ich erwarte die Ausgabe als "23.01.2017 09:19" aber es gibt mir die Ausgabe "Mon Jan 23 2017 00:00:00 GMT + 0530 (India Standard Time) " – Protagonist

+0

Ich habe die PLNKR aktualisiert ... check it out ... https://plnrkr.co/edit/9bD64nQ3n0KJWm5S8MiO? P = Vorschau –