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;
javascript
George
fonte
fonte
Respostas:
Há um
setSeconds
método também:Para obter uma lista das outras
Date
funções, consulte o MDN.setSeconds
manipulará corretamente os casos envolventes:fonte
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 comnew Date(d.getTime() - 92*1000);
funciona no entanto!fonte
Apenas pelos maníacos de desempenho entre nós.
consiga tempo
5.196.949 Ops / s, mais rápido
setSeconds
2.936.604 Ops / s, 43% mais lento
moment.js
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 :)
testes online jspref
fonte
Consulte também: Como adicionar 30 minutos a um objeto Data JavaScript?
fonte
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);
Tente isto
fonte
fonte
Eu tenho algumas novas variantes
var t = new Date(Date.now() + 10000);
var t = new Date(+new Date() + 10000);
fonte
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
Date
objeto que você terá problemas. Então, simplesmente voltei a usar apenas osetSeconds()
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 determinadoDate()
objeto e misturá-los leva a uma bagunça.Aqui está mais uma documentação que pode ajudar :
fonte
você pode usar o
setSeconds
método obtendo segundos a partir de hoje e adicionando apenas 10 segundosVocê pode adicionar 10 * 1000 milissegundos à nova data:
Você pode usar
setTime
:fonte
Tente assim.
Basta ligar e atribuir
new Date().addSeconds(10)
fonte