Bir JavaScript tarih nesnesine nasıl 10 saniye ekleyebilirim?
Bunun gibi bir şey:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Bir JavaScript tarih nesnesine nasıl 10 saniye ekleyebilirim?
Bunun gibi bir şey:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Yanıtlar:
Bir setSeconds
yöntem de var:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Diğer Date
işlevlerin bir listesi için MDN'yi kontrol etmelisiniz
setSeconds
etrafı saran kılıfları doğru şekilde işleyecek
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()
döner 'number'
, bu yüzden başka sorunlarınız olabileceğini düşünüyorum (düğümün eski bir sürümü veya başka bir sürümde değilseniz).
d.setSeconds(d.getSeconds() - 92);
Yapmayı deneyin ve sonuçta 1'32 yerine 2'32 "fark elde edersiniz. Ancak çözüm ile new Date(d.getTime() - 92*1000);
çalışır!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Sadece aramızdaki performans manyakları için.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5.196.949 Ops / sn, en hızlı
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2.936.604 Ops / sn,% 43 daha yavaş
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22.549 Ops / sn,% 100 daha yavaş
Bu yüzden belki de en az insan tarafından okunabilir (o kadar da kötü değil) ama en hızlı yol :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Ayrıca lütfen bakınız: Bir JavaScript Tarihi nesnesine 30 dakika nasıl eklenir?
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)
Date()
Javascript nesne gerçekten akıllı değildir.
Sadece saniye eklemeye odaklanırsanız, işleri sorunsuz bir şekilde ele alırsınız, ancak X saniye sayısını eklemeye çalışırsanız Date
, sorunla karşılaştığınız nesneye X dakika ve saat sayısı vb . Ekleyin. Bu yüzden sadece setSeconds()
yöntemi kullanarak ve verilerimi saniyeye dönüştürerek (ki iyi çalıştı) geri düştü .
Herkes Date()
tüm set yöntemlerini kullanarak küresel bir nesneye zaman ekleme gösterebilir ve son kez doğru dışarı çıkmak varsa bunu görmek istiyorum ama belirli bir Date()
nesne üzerinde bir anda bir set yöntemi kullanılacak anlamını alıyorum ve onları karıştırmak dağınıklığa yol açar.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
setSeconds
bugünden saniye alıp içine 10 saniye ekleyerek yöntemi kullanabilirsiniz
var today = new Date();
today.setSeconds(today.getSeconds() + 10);
Yeni tarihe 10 * 1000 milisaniye ekleyebilirsiniz:
var today = new Date();
today = new Date(today.getTime() + 1000*10);
Şunları kullanabilirsiniz setTime
:
today.setTime(now.getTime() + 10000)
Bu şekilde dene.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Sadece arayın ve atayın new Date().addSeconds(10)