Ini berfungsi di Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Tapi di naskah saya tidak bisa istirahat dua Tanggal baru
Date("2013-02-20T12:01:04.753Z")
Tidak berfungsi karena paremater tidak cocok dengan tanda tangan tanggal
date
typescript
pengguna2025288
sumber
sumber
new Date(1970, 1, 1, 0, 0, 0, 0).valueOf() // returns 2674800000 new Date(1970, 1, 1, 0, 0, 0, 0).getTime() // returns 2674800000
new Date().getTime()
useDate.now()
agar Anda tidak membuat objek baru secara tidak perlu.Beginilah cara melakukannya dalam skrip ketikan:
(new Date()).valueOf() - (new Date("2013-02-20T12:01:04.753Z")).valueOf()
Keterbacaan yang lebih baik:
var eventStartTime = new Date(event.startTime); var eventEndTime = new Date(event.endTime); var duration = eventEndTime.valueOf() - eventStartTime.valueOf();
sumber
eventStartTime
daneventEndTime
durasi itu diketik sebagainumber
(artinya jika Anda benar-benar mengambil baris ketiga kode di sini dengan sendirinya di sini durasi akan menjadi angka)Ini tidak berfungsi karena
Date - Date
bergantung pada jenis pemaksaan tipe yang dirancang untuk dicegah oleh TypeScript.Ada solusi untuk ini menggunakan
+
awalan:var t = Date.now() - +(new Date("2013-02-20T12:01:04.753Z");
Atau, jika Anda memilih untuk tidak menggunakan
Date.now()
:var t = +(new Date()) - +(new Date("2013-02-20T12:01:04.753Z"));
Lihat pembahasannya di sini .
Atau lihat jawaban Siddharth Singh, di bawah, untuk solusi yang lebih elegan menggunakan
valueOf()
sumber
Untuk menghitung selisih, Anda harus meletakkan
+
operator,dengan cara itu
typescript
mengubah tanggal menjadi angka.+new Date()- +new Date("2013-02-20T12:01:04.753Z")
Dari sana, Anda dapat membuat rumus untuk mengonversi selisih menjadi
minutes
atauhours
.sumber
// TypeScript const today = new Date(); const firstDayOfYear = new Date(today.getFullYear(), 0, 1); // Explicitly convert Date to Number const pastDaysOfYear = ( Number(today) - Number(firstDayOfYear) );
sumber