2009-08-22 11 views

Antwort

3

ich denke, das Sie http://www.mattkruse.com/javascript/date/

Theres eine getDateFromFormat() Funktion kann helfen, dass Sie ein wenig Ihr Problem lösen optimieren können.

+0

@lucas und was ist mit der Zeit gibt es eine Möglichkeit, es auch zu analysieren? – avnic

+0

Die Parse-Funktion akzeptiert dieses Format nicht, versuchen Sie es, in IE und FF erhalten Sie ** Mon Nov 08 2010 12: 05: 00 **, in Chrome nur ** Ungültiges Datum ** – CMS

+0

@CMS: Es war eine erste Schätzung. Ich habe eine andere Methode gefunden. Vielen Dank. – Kredns

3

Sie können die Teile des Datums erhalten einen regulären Ausdruck verwenden, und rufen Sie den Date Konstruktor, die Monatszahl eingestellt wird, da die Monatszahlen Null basieren, sind zum Beispiel:

function customDateParse (input) { 
    var m = input.match(/(\d+)/g); 
    return new Date(m[2], m[1] - 1, m[0], m[3], m[4], m[5]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

Wenn Sie nicht tun wie regexps:

function customDateParse (input) { 
    input = input.split(' '); 
    var date = input[0].split('/'), 
     time = input[1].split(':'); 

    return new Date(date[2], date[1] - 1, date[0], time[0], time[1], time[2]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

Aber wenn Sie, dass komplexe und Sie sind bereit, mehr Datum Manipulationen zu tun, empfehle ich Ihnen die DateJS Bibliothek, klein, Open Source und syntaktischen Zucker ...

+0

Das scheint ein bisschen komplex. Es scheint auch eine übermäßige Verwendung von Regex zu sein, da eine 'getDateFromFormat()' Methode in JavaScript verfügbar ist. – Kredns

+0

Es gibt keine native * getDateFromFormat * -Funktion ... – CMS

+0

Siehe den Link, den ich in meiner Antwort angegeben habe. – Kredns

1

Verwenden Sie momentjs, um von Zeichenfolge in Date-Objekt zu konvertieren.

var date = '23/08/2009 12:05:00'; 
var datetime = moment(date, 'DD/MM/YYYY HH:mm:ss'); 
datetime = moment.toDate(); 
Verwandte Themen