Bisakah saya mengonversi tanggal iso ke milidetik? misalnya saya ingin mengubah iso ini
2012-02-10T13:19:11+0000
hingga milidetik.
Karena saya ingin membandingkan tanggal sekarang dari tanggal dibuat. Dan tanggal dibuat adalah tanggal iso.
Bisakah saya mengonversi tanggal iso ke milidetik? misalnya saya ingin mengubah iso ini
2012-02-10T13:19:11+0000
hingga milidetik.
Karena saya ingin membandingkan tanggal sekarang dari tanggal dibuat. Dan tanggal dibuat adalah tanggal iso.
1328796537
, tetapi di fb api, tanggal ditampilkan di iso2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- hanya itu yang Anda butuhkan
Jawaban:
Coba ini
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);
EDIT
Anda telah memberikan tanggal ISO. Itu juga diterima oleh konstruktor Date
objek
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();
console.log(result);
Sunting
Yang terbaik yang saya temukan adalah menghilangkan offset secara manual.
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);
Sepertinya bekerja. Sejauh masalah dengan mengubah string ISO menjadi Date
objek, Anda dapat merujuk ke tautan yang disediakan.
EDIT
Memperbaiki bug dengan konversi yang salah menjadi milidetik menurut komentar Prasad19sara.
var myDate = new Date("2012-02-10T13:19:11+0000");
Singkatan dari solusi sebelumnya adalah
var myDate = +new Date("2012-02-10T13:19:11+0000");
Itu melakukan konversi tipe on the fly dan langsung mengeluarkan tanggal dalam format milidetik.
Cara lain juga menggunakan metode parse dari Date util yang hanya mengeluarkan waktu EPOCH dalam milidetik.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
+new Date()
pengembalian 1447857230137
yang merupakan waktu dalam milidetik.
const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
tetapi new Date('2017-09-26T20:24:18.801Z').getTime()
atau new Date('2017-09-26T20:24:18.801Z').valueOf()
bahkan lebih mudah dibaca.
Opsi lain pada 2017 adalah menggunakan Date.parse()
. Dokumentasi MDN menunjukkan, bagaimanapun, bahwa itu tidak dapat diandalkan sebelum ES5.
var date = new Date(); // today's date and time in ISO format
var myDate = Date.parse(date);
Lihat biola untuk lebih jelasnya.
Solusi lain yang mungkin adalah untuk membandingkan tanggal saat ini dengan January 1, 1970
, Anda bisa mendapatkan January 1, 1970
dengan new Date(0)
;
var date = new Date();
var myDate= date - new Date(0);
Ya, Anda dapat melakukannya dalam satu baris
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
Solusi lain dapat menggunakan Number object parser seperti ini:
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);
Ini mengkonversi ke milidetik seperti getTime()
pada Date
objek
var date = new Date()
console.log(" Date in MS last three digit = "+ date.getMilliseconds())
console.log(" MS = "+ Date.now())
Dengan menggunakan ini kita bisa mendapatkan tanggal dalam milidetik
var date = new Date (date_string); var milidetik = date.getTime ();
Ini berhasil untuk saya!
Jika ada yang ingin mengambil hanya Waktu dari Tanggal ISO, berikut akan sangat membantu. Saya sedang mencari itu dan saya tidak dapat menemukan pertanyaan untuk itu. Jadi jika ada yang melihat akan membantu.
let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);
Outputnya adalah satu-satunya waktu dari isoDate yang,
15:27