¿Cómo puedo agregar 10 segundos a un objeto de fecha JavaScript?
Algo como esto:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
¿Cómo puedo agregar 10 segundos a un objeto de fecha JavaScript?
Algo como esto:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Respuestas:
También hay un setSecondsmétodo:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Para obtener una lista de las otras Date funciones, debe consultar MDN
setSeconds manejará correctamente los 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()regresa 'number'en el nodo, por lo que creo que puede tener otros problemas (a menos que esté en una versión desactualizada del nodo o algo así).
d.setSeconds(d.getSeconds() - 92);y terminarás con una diferencia de 2'32 "en lugar de 1'32". new Date(d.getTime() - 92*1000);¡Sin embargo, la solución funciona!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Solo por los maniacos de rendimiento entre nosotros.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5,196,949 Ops / seg, el más rápido
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2,936,604 Ops / sec, 43% más lento
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22,549 Ops / sec, 100% más lento
Entonces, tal vez sea la menos legible para los humanos (no está tan mal) pero la forma más rápida de ir :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Consulte también: ¿Cómo agregar 30 minutos a un objeto Fecha de 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)
Tengo un par de nuevas variantes
var t = new Date(Date.now() + 10000);var t = new Date(+new Date() + 10000);El Date()objeto en javascript no es tan inteligente realmente.
Si solo te enfocas en agregar segundos, parece manejar las cosas sin problemas, pero si intentas agregar X número de segundos, entonces agrega X número de minutos y horas, etc., al mismo Dateobjeto que terminas en problemas. Así que simplemente recurrí a solo usar el setSeconds()método y convertir mis datos en segundos (lo que funcionó bien).
Si alguien puede demostrar la adición de tiempo a un Date()objeto global utilizando todos los métodos establecidos y hacer que la hora final salga correctamente, me gustaría verlo, pero tengo la sensación de que un método establecido debe usarse a la vez en un Date()objeto determinado y mezclarlos conduce a un desastre.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
puede usar el setSecondsmétodo obteniendo segundos a partir de hoy y simplemente agregando 10 segundos
var today = new Date();
today.setSeconds(today.getSeconds() + 10);Puede agregar 10 * 1000 milisegundos a la nueva fecha:
var today = new Date();
today = new Date(today.getTime() + 1000*10);Puedes usar setTime:
today.setTime(now.getTime() + 10000)Intenta de esta manera.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Solo llama y asigna new Date().addSeconds(10)