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;
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;
Jawaban:
Ada setSecondsmetode juga:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Untuk daftar fungsi lainnya Date , Anda harus memeriksa MDN
setSeconds akan menangani dengan benar kasus bungkus:
var d;
d = new Date('2014-01-01 10:11:55');
alert(d.getMinutes() + ':' + d.getSeconds()); //11:55
d.setSeconds(d.getSeconds() + 10);
alert(d.getMinutes() + ':0' + d.getSeconds()); //12:05
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 dengan new Date(d.getTime() - 92*1000);bekerja namun!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Hanya untuk para maniak kinerja di antara kita.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5.196.949 Ops / dtk, tercepat
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2.936.604 Ops / dtk, 43% lebih lambat
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22.549 Ops / dtk, 100% lebih lambat
Jadi mungkin itu yang paling tidak dapat dibaca manusia (tidak seburuk itu) tetapi cara tercepat :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Silakan juga merujuk: Bagaimana cara menambahkan 30 menit ke objek Tanggal JavaScript?
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);
timeObject.setSeconds(timeObject.getSeconds() + 10)
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 Dateobjek yang sama Anda berakhir dalam masalah. Jadi saya hanya kembali ke hanya menggunakan setSeconds()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 pada Date()objek yang diberikan dan mencampurnya menyebabkan kekacauan.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
Anda dapat menggunakan setSecondsmetode dengan mendapatkan detik dari hari ini dan hanya menambahkan 10 detik di dalamnya
var today = new Date();
today.setSeconds(today.getSeconds() + 10);Anda dapat menambahkan 10 * 1000 milidetik ke tanggal baru:
var today = new Date();
today = new Date(today.getTime() + 1000*10);Anda bisa menggunakan setTime:
today.setTime(now.getTime() + 10000)Coba dengan cara ini.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Panggil saja dan tetapkan new Date().addSeconds(10)