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.

32voto

Karl Andrew Punkte 1533

Übergeben Sie es als Argument an Date():

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

Sie können z. B. das Datum, den Monat und das Jahr eingeben: dt.getMonth() .

30voto

H6. Punkte 29084

Wenn Sie die großartige luxon Bibliothek können Sie Ihr Datum leicht analysieren, indem Sie z. B.

var luxonDate = DateTime.fromISO("2014-09-15T09:00:00");

und kann auf das JS-Datumsobjekt über

luxonDate().toJSDate();

Die alte Antwort lautete MomentJS

var momentDate = moment("2014-09-15 09:00:00");
momentDate ().toDate();

29voto

None Punkte 1

Einfach new Date(st);

In der Annahme, dass es sich um die richtiges Format .

29voto

Arivan Bastos Punkte 1945

Für alle, die nach einer kleinen und intelligenten Lösung suchen:

String.prototype.toDate = function(format)
{
  var normalized      = this.replace(/[^a-zA-Z0-9]/g, '-');
  var normalizedFormat= format.toLowerCase().replace(/[^a-zA-Z0-9]/g, '-');
  var formatItems     = normalizedFormat.split('-');
  var dateItems       = normalized.split('-');

  var monthIndex  = formatItems.indexOf("mm");
  var dayIndex    = formatItems.indexOf("dd");
  var yearIndex   = formatItems.indexOf("yyyy");
  var hourIndex     = formatItems.indexOf("hh");
  var minutesIndex  = formatItems.indexOf("ii");
  var secondsIndex  = formatItems.indexOf("ss");

  var today = new Date();

  var year  = yearIndex>-1  ? dateItems[yearIndex]    : today.getFullYear();
  var month = monthIndex>-1 ? dateItems[monthIndex]-1 : today.getMonth()-1;
  var day   = dayIndex>-1   ? dateItems[dayIndex]     : today.getDate();

  var hour    = hourIndex>-1      ? dateItems[hourIndex]    : today.getHours();
  var minute  = minutesIndex>-1   ? dateItems[minutesIndex] : today.getMinutes();
  var second  = secondsIndex>-1   ? dateItems[secondsIndex] : today.getSeconds();

  return new Date(year,month,day,hour,minute,second);
};

Ejemplo:

"22/03/2016 14:03:01".toDate("dd/mm/yyyy hh:ii:ss");
"2016-03-29 18:30:00".toDate("yyyy-mm-dd hh:ii:ss");

21voto

Torsten Becker Punkte 4280

new Date(2000, 10, 1) ergibt "Wed Nov 01 2000 00:00:00 GMT+0100 (CET)".

Die 0 für Monat ergibt Januar.

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