2016-05-13 7 views
0

ich ein Datum Zeichenfolge habe 13/05/2016 08:18, um ein Datum aus dieser Zeichenfolge zu erhalten verwende ich
new Date(13/05/2016 08:18) Funktion, aber es gibt einen Fehler, da die Funktion 13 als Monat versteht nicht ein Tag, was kann ich tun, um JavaScript zu sagen, dass 13 ist ein Tag, kein MonatNeue Termin JavaScript-Funktion

+0

Können Sie Ihren Code für mich aktualisieren? –

+0

Der Umgang mit Datumsangaben in JS kann extrem unangenehm sein. Ich empfehle sehr, etwas wie moment.js zu verwenden, es hat mir viel Zeit gespart. (http://momentjs.com/) – Robert

+0

Mögliches Duplikat von [JavaScript date objects UK dates] (http://stackoverflow.com/questions/3117262/javascript-date-objects-uk-dates) – thatOneGuy

Antwort

3

was kann ich tun Javascript zu sagen, dass 13 ein Tag, kein Monat

nicht auf JS Konstruktor verlassen Sie (die Zeichenfolge als Argument) für Sie ein beliebiges Datum Format zu analysieren . Sie benötigen sie auf Ihren eigenen

var dateStr = "13/05/2016 08:18"; 
var date = dateStr.split(/\s|\/|:/); 
var d = new Date(date[2], date[1], date[0], date[3], date[4]); 
+0

funktioniert super! Vielen Dank :) –

0

Die Date() Objekte hat ein paar verschiedene Konstruktoren, aber nicht alle Browser unterstützen alle von ihnen. Die Version, die (soweit ich weiß) von allen gängigen Browsern unterstützt wird, einschließlich IE8, ist "JJJJ/MM/TT 00:00:00", um ein gültiges Datum zu erstellen, das in allen Browsern funktioniert, die Sie benötigen etwas wie new Date('2016/05/13 08:18:00').

+0

ECMAScript gibt nur eine Teilmenge an von ISO 8601-Formaten, und auch sie sind unzuverlässig. Es ist viel besser, Strings manuell zu analysieren, als für die Antwort von gurvinder372. – RobG

0

Es gibt einige Abhilfe zu tun, aber http://momentjs.com/ ist wirklich gut. Es ist eine großartige Hilfsbibliothek, um Datetime zu verarbeiten.

Dann können Sie tun Dinge wie:

var day = moment("12-25-1995", "MM-DD-YYYY"); 

oder

var day = moment("25/12/1995", "DD/MM/YYYY"); 

dann am Tag arbeiten

day.add('days', 7) 

und die native zu erhalten javascript Datum

day.toDate(); 
+0

Einverstanden, moment.js es ist wirklich gut, Daten zu manipulieren. Aber nur wenn Sie mehrere Daten auf verschiedene Arten manipulieren müssen, ist dies ein großes Plugin, das nur ein Datum anzeigt. –

+0

Dies sollte ein Kommentar sein, keine Antwort. – RobG

0

Es ist nicht der beste Weg, aber man könnte diesen Trick versuchen:

var dstring = '13/05/2016 08:18'; 
var nstr = dstring.split('/'); 
var datestring = nstr[1]+"-"+nstr[0]+"-"+nstr[2]; 
var d = new Date(datestring); 
console.log(d); 
+0

Sie haben Recht, es ist nicht der beste Weg. Nachdem Sie die Zeichenfolge in ihre Teile aufgeteilt haben, sollten Sie den Date-Konstruktor wie für die Antwort von gurvinder372 aufrufen. ;-) – RobG

Verwandte Themen