Добавить 10 секунд к объекту даты JavascriptОбъект

Как добавить 10 секунд к объекту timeObject объекта javascript. Что-то вроде этого я думаю..

var timeObject = new Date()     
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;

Ответ 1

Существует метод setSeconds:

var t = new Date();
t.setSeconds(t.getSeconds() + 10);

Для списка других функций Date вы должны проверить MDN


setSeconds будет корректно обрабатывать случаи обертывания:

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

Ответ 2

// var timeObject = new Date();

new Date(timeObject.getTime() + 10000);

Ответ 4

Просто для маньяков производительности среди нас.

GetTime

var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);

5,196,949 Ops/sec, самый быстрый


setSeconds

var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);

2,936,604 Ops/sec, на 43% медленнее


moment.js

var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');

22,549 Ops/sec, на 100% медленнее


Так что, возможно, его наименее читаемый человеком (не так уж плохо), но самый быстрый способ пойти:)

онлайн-тесты jspref

Ответ 5

Попробуйте это

a = new Date();
a.setSeconds(a.getSeconds() + 10);

Ответ 6

timeObject.setSeconds(timeObject.getSeconds() + 10)

Ответ 7

Объект Date() в javascript не настолько умный.

Если вы просто сосредотачиваетесь на добавлении секунд, это, кажется, обрабатывает вещи гладко, но если вы попытаетесь добавить X количество секунд, добавьте X число минут и часов и т.д. в тот же объект Date, в котором вы оказались в беде. Поэтому я просто отказался только от метода setSeconds() и преобразовал свои данные в секунды (что отлично работало).

Если кто-нибудь может продемонстрировать добавление времени к глобальному объекту Date(), используя все установленные методы и окончательное время выйдет правильно, я бы хотел его увидеть, но я понял, что один метод набора должен использоваться на время на данном объекте Date() и их смешение приводит к беспорядку.

var vTime = new Date();

var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );

vTime.setSeconds(iSecondsToAdd);

Вот еще несколько документов, которые могут помочь: