Posso convertire la data ISO in millisecondi? per esempio voglio convertire questo iso
2012-02-10T13:19:11+0000
a millisecondi.
Perché voglio confrontare la data corrente dalla data di creazione. E la data di creazione è una data iso.
Posso convertire la data ISO in millisecondi? per esempio voglio convertire questo iso
2012-02-10T13:19:11+0000
a millisecondi.
Perché voglio confrontare la data corrente dalla data di creazione. E la data di creazione è una data iso.
1328796537
, ma in fb api, la data è mostrata in iso2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- è tutto ciò di cui hai bisogno
Risposte:
Prova questo
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
console.log(milliseconds);
MODIFICARE
Hai fornito una data ISO. È accettato anche dal costruttore Date
dell'oggetto
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();
console.log(result);
modificare
La cosa migliore che ho trovato è sbarazzarmi dell'offset manualmente.
var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;
var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
console.log(withOffset);
console.log(withoutOffset);
Sembra funzionare. Per quanto riguarda i problemi con la conversione della stringa ISO Date
nell'oggetto puoi fare riferimento ai link forniti.
MODIFICARE
Risolto bug con conversione errata in millisecondi secondo il commento di Prasad19sara.
var myDate = new Date("2012-02-10T13:19:11+0000");
Una scorciatoia delle soluzioni precedenti è
var myDate = +new Date("2012-02-10T13:19:11+0000");
Esegue una conversione di tipo al volo e fornisce direttamente la data in formato millisecondo.
Un altro modo è utilizzare anche il metodo di analisi di Date util che restituisce solo l'ora EPOCH in millisecondi.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
+new Date()
restituisce 1447857230137
il tempo in millisecondi.
const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
ma new Date('2017-09-26T20:24:18.801Z').getTime()
o new Date('2017-09-26T20:24:18.801Z').valueOf()
è ancora più leggibile.
Un'altra opzione a partire dal 2017 è usare Date.parse()
. La documentazione di MDN sottolinea, tuttavia, che non è affidabile prima di ES5.
var date = new Date(); // today's date and time in ISO format
var myDate = Date.parse(date);
Vedi il violino per maggiori dettagli.
Un'altra possibile soluzione è quella di confrontare data corrente con January 1, 1970
, è possibile ottenere January 1, 1970
da new Date(0)
;
var date = new Date();
var myDate= date - new Date(0);
Sì, puoi farlo in una sola riga
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
Un'altra soluzione potrebbe essere quella di utilizzare il parser di oggetti Number in questo modo:
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);
Questo converte in millisecondi proprio come getTime()
su Date
object
var date = new Date()
console.log(" Date in MS last three digit = "+ date.getMilliseconds())
console.log(" MS = "+ Date.now())
Usando questo possiamo ottenere la data in millisecondi
var date = new Date (date_string); var milliseconds = date.getTime ();
Questo ha funzionato per me!
Nel caso in cui qualcuno volesse prendere solo l'ora da una data ISO, sarà utile seguire. Lo stavo cercando e non sono riuscito a trovare una domanda. Quindi, nel caso qualcuno veda, sarà utile.
let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
L'output sarà l'unica volta da isoDate che è,
15:27