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.
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.
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");
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.
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);
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
Oui, vous pouvez le faire en une seule ligne
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
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