it-swarm.com.de

konvertieren Sie das Iso-Datum in Javascript in Millisekunden

Kann ich ein Iso-Datum in Millisekunden konvertieren? Zum Beispiel möchte ich dieses Iso konvertieren 

2012-02-10T13:19:11+0000

millisekunden.

Weil ich das aktuelle Datum vom Erstellungsdatum aus vergleichen möchte. Und das Erstellungsdatum ist ein ISO-Datum.

54

Versuche dies

var date = new Date("11/21/1987 16:00:00"); // some mock date
var milliseconds = date.getTime(); 
// This will return you the number of milliseconds
// elapsed from January 1, 1970 
// if your date is less than that date, the value will be negative

BEARBEITEN

Sie haben ein ISO-Datum angegeben. Sie wird auch vom Konstruktor des Date-Objekts akzeptiert

var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();

Bearbeiten

Das Beste, was ich gefunden habe, ist, den Offset manuell loszuwerden.

var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;

var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
alert(withOffset);
alert(withoutOffset);

Scheint zu funktionieren. Bei Problemen mit der Konvertierung des ISO-Strings in das Date-Objekt können Sie sich auf die angegebenen Links beziehen.

BEARBEITEN

Der Fehler mit falscher Konvertierung in Millisekunden wurde gemäß dem Kommentar von Prasad19sara behoben.

88
Oybek

Eine Abkürzung der bisherigen Lösungen ist 

var myDate = +new Date("2012-02-10T13:19:11+0000");

Es führt eine Direktkonvertierung durch und gibt das Datum direkt im Millisekundenformat aus. 

Eine andere Möglichkeit ist die Verwendung der Parse-Methode von Date util, die nur die Epoche in Millisekunden ausgibt.

var myDate = Date.parse("2012-02-10T13:19:11+0000");
22
Tahsin Turkoz

Eine weitere Option ab 2017 ist die Verwendung von Date.parse(). MDNs documentation weist jedoch darauf hin, dass es vor ES5 unzuverlässig ist.

var date = new Date(); // today's date and time in ISO format
var myDate = Date.parse(date);

Siehe Fiddle für weitere Details.

4
samurai_jane

Eine andere mögliche Lösung ist der Vergleich des aktuellen Datums mit January 1, 1970. Sie können January 1, 1970 von new Date(0) erhalten.

var date = new Date(); 
var myDate= date - new Date(0);
2
LingYan Meng

Eine andere Lösung könnte darin bestehen, Number-Objektparser wie folgt zu verwenden:

let result = Number(new Date("2012-02-10T13:19:11+0000"));
let resultWithGetTime = (new Date("2012-02-10T13:19:11+0000")).getTime();
console.log(result);
console.log(resultWithGetTime);

Dies konvertiert in Millisekunden genau wie getTime() für das Objekt Date

0
Black Mamba

Ja, Sie können dies in einer einzigen Zeile tun

let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
0
Mohid Kazi
var date = new Date()
console.log(" Date in MS last three digit = "+  date.getMilliseconds())
console.log(" MS = "+ Date.now())

Hiermit können wir das Datum in Millisekunden ermitteln

0
JibinNajeeb