Bagaimana saya bisa menambahkan 10 detik ke objek tanggal JavaScript?
Sesuatu seperti ini:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
javascript
George
sumber
sumber
Jawaban:
Ada
setSeconds
metode juga:Untuk daftar fungsi lainnya
Date
, Anda harus memeriksa MDNsetSeconds
akan menangani dengan benar kasus bungkus:sumber
typeof new Date().getSeconds()
kembali'number'
dalam node, jadi saya pikir Anda mungkin memiliki masalah lain (kecuali jika Anda berada pada versi node yang usang atau sesuatu).d.setSeconds(d.getSeconds() - 92);
dan Anda akan berakhir dengan 2'32 "perbedaan bukan 1'32". Solusi dengannew Date(d.getTime() - 92*1000);
bekerja namun!sumber
Hanya untuk para maniak kinerja di antara kita.
getTime
5.196.949 Ops / dtk, tercepat
setSeconds
2.936.604 Ops / dtk, 43% lebih lambat
moment.js
22.549 Ops / dtk, 100% lebih lambat
Jadi mungkin itu yang paling tidak dapat dibaca manusia (tidak seburuk itu) tetapi cara tercepat :)
tes online jspref
sumber
Silakan juga merujuk: Bagaimana cara menambahkan 30 menit ke objek Tanggal JavaScript?
sumber
var timestamp = Date.parse("2011-03-26T20:59:59.999Z"); var d = new Date(timestamp); d.setSeconds(d.getSeconds() + 10); console.log(d.getTime() - timestamp);
Coba ini
sumber
sumber
Saya punya beberapa varian baru
var t = new Date(Date.now() + 10000);
var t = new Date(+new Date() + 10000);
sumber
The
Date()
objek dalam javascript tidak terlalu pintar benar-benar.Jika Anda hanya fokus untuk menambahkan detik tampaknya menangani hal-hal dengan lancar tetapi jika Anda mencoba untuk menambahkan X jumlah detik kemudian tambahkan X jumlah menit dan jam, dll, ke
Date
objek yang sama Anda berakhir dalam masalah. Jadi saya hanya kembali ke hanya menggunakansetSeconds()
metode dan mengubah data saya menjadi detik (yang berfungsi dengan baik).Jika ada yang bisa mendemonstrasikan menambahkan waktu ke
Date()
objek global menggunakan semua metode yang ditetapkan dan memiliki waktu akhir keluar dengan benar, saya ingin melihatnya tetapi saya mendapatkan pengertian bahwa satu set metode harus digunakan pada suatu waktu padaDate()
objek yang diberikan dan mencampurnya menyebabkan kekacauan.Berikut ini beberapa dokumentasi yang dapat membantu :
sumber
Anda dapat menggunakan
setSeconds
metode dengan mendapatkan detik dari hari ini dan hanya menambahkan 10 detik di dalamnyaAnda dapat menambahkan 10 * 1000 milidetik ke tanggal baru:
Anda bisa menggunakan
setTime
:sumber
Coba dengan cara ini.
Panggil saja dan tetapkan
new Date().addSeconds(10)
sumber