949 Stimmen

Parsing einer Zeichenkette zu einem Datum in JavaScript

Wie kann ich in JavaScript eine Zeichenkette in ein Datumsobjekt umwandeln?

var st = "date in some format"
var dt = new Date();

var dt_st = // st in Date format, same as dt.

8voto

Marcelo Rebouças Punkte 598

In das Format pt-BR konvertieren:

    var dateString = "13/10/2014";
    var dataSplit = dateString.split('/');
    var dateConverted;

    if (dataSplit[2].split(" ").length > 1) {

        var hora = dataSplit[2].split(" ")[1].split(':');
        dataSplit[2] = dataSplit[2].split(" ")[0];
        dateConverted = new Date(dataSplit[2], dataSplit[1]-1, dataSplit[0], hora[0], hora[1]);

    } else {
        dateConverted = new Date(dataSplit[2], dataSplit[1] - 1, dataSplit[0]);
    }

Ich hoffe, es hilft jemandem!!!

6voto

Sushil Mahajan Punkte 137

Ich habe ein Fiddle dafür erstellt. Sie können die Funktion toDate() für eine beliebige Datumszeichenfolge verwenden und das Datumsformat angeben. Dies wird Ihnen ein Date-Objekt zurückgeben. https://jsfiddle.net/Sushil231088/q56yd0rp/

"17/9/2014".toDate("dd/MM/yyyy", "/")

5voto

Alexey Popov Punkte 76

Für die Umwandlung von String in Datum in js verwende ich http://momentjs.com/

moment().format('MMMM Do YYYY, h:mm:ss a'); // August 16th 2015, 4:17:24 pm
moment().format('dddd');                    // Sunday
moment().format("MMM Do YY");               // Aug 16th 15
moment().format('YYYY [escaped] YYYY');     // 2015 escaped 2015
moment("20111031", "YYYYMMDD").fromNow(); // 4 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 16 hours ago
moment().endOf('day').fromNow();          // in 8 hours

5voto

Andrew Punkte 3305

Ich habe diese Funktion erstellt, um ein beliebiges Datumsobjekt in ein UTC-Datumsobjekt zu konvertieren.

function dateToUTC(date) {
    return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
}

dateToUTC(new Date());

4voto

Daniel Patru Punkte 1900

Diese Antwort stützt sich auf Kassem's Antwort aber es kann auch zweistellige Jahreszahlen verarbeiten. Ich habe eine Bearbeitung der Antwort von Kassem eingereicht, aber für den Fall, dass sie nicht genehmigt wurde, reiche ich dies auch als separate Antwort ein.

function stringToDate(_date,_format,_delimiter) {
        var formatLowerCase=_format.toLowerCase();
        var formatItems=formatLowerCase.split(_delimiter);
        var dateItems=_date.split(_delimiter);
        var monthIndex=formatItems.indexOf("mm");
        var dayIndex=formatItems.indexOf("dd");
        var yearIndex=formatItems.indexOf("yyyy");
        var year = parseInt(dateItems[yearIndex]); 
        // adjust for 2 digit year
        if (year < 100) { year += 2000; }
        var month=parseInt(dateItems[monthIndex]);
        month-=1;
        var formatedDate = new Date(year,month,dateItems[dayIndex]);
        return formatedDate;
}

stringToDate("17/9/14","dd/MM/yyyy","/");
stringToDate("17/9/2014","dd/MM/yyyy","/");
stringToDate("9/17/2014","mm/dd/yyyy","/")
stringToDate("9-17-2014","mm-dd-yyyy","-")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X