2016-09-09 4 views
0

Ich würde convert Datum Zeichenfolge wie folgt node-dateformat Modul isodate aber ich habe Fehler:Datumsformat konvertieren Datum Zeichenfolge isodate

TypeError: Invalid date

Mein Code:

let postProperties = { 
    dateCreated: dateFormat('4 juillet 1991', 'yyyy-mm-dd') 
}; 

Jede Idee zu diesem Problem?

Danke :)

+0

was bedeutet 'juillet'? – abdulbarik

+0

Entschuldigung, es ist Juli in Französisch :) Es ist vielleicht, weil es auf Französisch ist, habe ich diesen Fehler? –

+0

Sie wollen also in 'Französisch' konvertieren? – abdulbarik

Antwort

1

Dies ist ein i18n Datum Parsing Ausgabe basiert. node-dateformat (und schließlich das Kern-Javascript-Datum Parsing es ist hinter den Kulissen angewiesen) kann Französisch Monate nicht verarbeiten. Um dies zu überprüfen, versuchen Sie:

dateFormat('4 july 1991', 'yyyy-mm-dd') 

Dies wird ordnungsgemäß funktionieren. Wenn Sie französische Daten analysieren möchten, empfehle ich die Verwendung der großartigen Datums-/Zeitbibliothek moment. Moment hat volle i18n Unterstützung. Sie müssen nur eine custom locale bundle für Ihre Sprache hinzufügen, dann sind Sie fertig. Hier ist ein kurzes Beispiel, das zeigt, wie dies mit einem französischen Gebietsschema-Bundle funktioniert:

import moment from 'moment'; 

// A French locale bundle; call this once in your code somewhere 
moment.locale('fr', { 
    months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), 
    monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), 
    weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), 
    weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"), 
    weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"), 
    longDateFormat : { 
    LT : "HH:mm", 
    LTS : "HH:mm:ss", 
    L : "DD/MM/YYYY", 
    LL : "D MMMM YYYY", 
    LLL : "D MMMM YYYY LT", 
    LLLL : "dddd D MMMM YYYY LT" 
    }, 
    calendar : { 
    sameDay: "[Aujourd'hui à] LT", 
    nextDay: '[Demain à] LT', 
    nextWeek: 'dddd [à] LT', 
    lastDay: '[Hier à] LT', 
    lastWeek: 'dddd [dernier à] LT', 
    sameElse: 'L' 
    }, 
    relativeTime : { 
    future : "dans %s", 
    past : "il y a %s", 
    s : "quelques secondes", 
    m : "une minute", 
    mm : "%d minutes", 
    h : "une heure", 
    hh : "%d heures", 
    d : "un jour", 
    dd : "%d jours", 
    M : "un mois", 
    MM : "%d mois", 
    y : "une année", 
    yy : "%d années" 
    }, 
    ordinalParse : /\d{1,2}(er|ème)/, 
    ordinal : function (number) { 
    return number + (number === 1 ? 'er' : 'ème'); 
    }, 
    meridiemParse: /PD|MD/, 
    isPM: function (input) { 
    return input.charAt(0) === 'M'; 
    }, 
    meridiem : function (hours, minutes, isLower) { 
    return hours < 12 ? 'PD' : 'MD'; 
    }, 
    week : { 
    dow : 1, 
    doy : 4 
    } 
}); 

// Create a new moment instance, parsing your French date 
const date = moment('4 juillet 1991', 'D MMMM YYYY')  

// Will output "1991-07-04" 
console.log(date.format('YYYY-MM-DD')); 
+0

Danke hwillson! Moment ist perfekt :) –

Verwandte Themen