Добавить 10 секунд к объекту даты Javascript - PullRequest
213 голосов
/ 07 октября 2011

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

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

Ответы [ 9 ]

356 голосов
/ 07 октября 2011

Также есть метод 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
92 голосов
/ 07 октября 2011
// var timeObject = new Date();

new Date(timeObject.getTime() + 10000);
53 голосов
/ 24 июня 2013
var timeObject = new Date(); 
timeObject = new Date(timeObject .getTime() + 1000*10);
console.log(timeObject);

Также, пожалуйста, обращайтесь: Как добавить 30 минут к объекту JavaScript Date?

51 голосов
/ 02 февраля 2016

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

GetTime

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

5 196 949 операций в секунду, самый быстрый


setSeconds

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

2,936,604 операций в секунду, на 43% медленнее


moment.js

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

22,549 операций в секунду, на 100% медленнее


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

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

9 голосов
/ 07 октября 2011

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

a = new Date();
a.setSeconds(a.getSeconds() + 10);
4 голосов
/ 07 октября 2011
timeObject.setSeconds(timeObject.getSeconds() + 10)
3 голосов
/ 17 августа 2018

У меня есть пара новых вариантов

  1. var t = new Date(Date.now() + 10000);
  2. var t = new Date(+new Date() + 10000);
2 голосов
/ 22 декабря 2017
  1. Вы можете использовать метод setSeconds, получив секунды с сегодняшнего дня и просто добавив в него 10 секунд

    var today = new Date();
    today.setSeconds(today.getSeconds() + 10);
    
  2. Вы можете добавить 10 * 1000 миллисекундна новую дату:

    var today = new Date(); 
    today = new Date(today.getTime() + 1000*10);
    
  3. Вы можете использовать setTime:

    today.setTime(now.getTime() + 10000)
    
2 голосов
/ 10 января 2014

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

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

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

var vTime = new Date();

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

vTime.setSeconds(iSecondsToAdd);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...