Como posso adicionar 10 segundos a um objeto de data JavaScript?
Algo assim:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Como posso adicionar 10 segundos a um objeto de data JavaScript?
Algo assim:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Respostas:
Há um setSecondsmétodo também:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Para obter uma lista das outras Date funções, consulte o MDN.
setSeconds manipulará corretamente os casos envolventes:
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()retorna 'number'no nó, então acho que você pode ter outros problemas (a menos que você esteja em uma versão desatualizada do nó ou algo assim).
d.setSeconds(d.getSeconds() - 92);e você terminará com 2'32 "de diferença em vez de 1'32". A solução com new Date(d.getTime() - 92*1000);funciona no entanto!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Apenas pelos maníacos de desempenho entre nós.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5.196.949 Ops / s, mais rápido
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2.936.604 Ops / s, 43% mais lento
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22.549 Ops / s, 100% mais lento
Talvez seja a menos legível por humanos (não tão ruim), mas a maneira mais rápida de ir :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Consulte também: Como adicionar 30 minutos a um objeto Data 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)
O Date()objeto em javascript não é tão inteligente assim.
Se você apenas se concentrar em adicionar segundos, parece lidar com as coisas sem problemas, mas se você tentar adicionar um número X de segundos, adicione um número X de minutos e horas, etc., ao mesmo Dateobjeto que você terá problemas. Então, simplesmente voltei a usar apenas o setSeconds()método e a converter meus dados em segundos (o que funcionou bem).
Se alguém puder demonstrar a adição de tempo a um Date()objeto global usando todos os métodos definidos e a hora final sair corretamente, eu gostaria de vê-lo, mas tenho a sensação de que um método definido deve ser usado por vez em um determinado Date()objeto e misturá-los leva a uma bagunça.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
você pode usar o setSecondsmétodo obtendo segundos a partir de hoje e adicionando apenas 10 segundos
var today = new Date();
today.setSeconds(today.getSeconds() + 10);Você pode adicionar 10 * 1000 milissegundos à nova data:
var today = new Date();
today = new Date(today.getTime() + 1000*10);Você pode usar setTime:
today.setTime(now.getTime() + 10000)Tente assim.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Basta ligar e atribuir new Date().addSeconds(10)