web-dev-qa-db-fra.com

convertir date iso en millisecondes en javascript

Puis-je convertir une date ISO en millisecondes? Par exemple, je souhaite convertir cette image ISO 

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

en millisecondes.

Parce que je veux comparer la date actuelle de la date de création. Et la date créée est une date iso.

54
Robin Carlo Catacutan

Essaye ça

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

MODIFIER

Vous avez fourni une date ISO. Il est également accepté par le constructeur de l'objet Date

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

Modifier

Le mieux que j'ai trouvé est de supprimer manuellement le décalage.

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);

Semble fonctionner. En ce qui concerne les problèmes de conversion de chaîne ISO en objet Date, vous pouvez vous reporter aux liens fournis.

MODIFIER

Correction du bug avec une conversion incorrecte en millisecondes selon le commentaire de Prasad19sara.

88
Oybek

Un raccourci des solutions précédentes est 

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

Il effectue une conversion de type à la volée et affiche directement la date au format milliseconde. 

Une autre méthode consiste également à utiliser la méthode d’analyse de Date util qui n’affiche que l’époque en millisecondes.

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

Une autre option à partir de 2017 consiste à utiliser Date.parse(). MDN's documentation signale cependant qu’elle est peu fiable avant ES5.

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

Voir le violon pour plus de détails.

4
samurai_jane

Une autre solution possible consiste à comparer la date actuelle avec January 1, 1970, vous pouvez obtenir January 1, 1970 par new Date(0);

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

Une autre solution pourrait être d’utiliser un analyseur d’objets numériques comme ceci:

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);

Ceci convertit en millisecondes exactement comme getTime() sur un objet Date

0
Black Mamba

Oui, vous pouvez le faire en une seule ligne

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())

En utilisant cela, nous pouvons obtenir la date en millisecondes

0
JibinNajeeb