Как я могу добавить 10 секунд к объекту даты JavaScript?
Что-то вроде этого:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Как я могу добавить 10 секунд к объекту даты JavaScript?
Что-то вроде этого:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Ответы:
Также есть 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
typeof new Date().getSeconds()возвращает 'number'в узел, так что я думаю, что у вас могут быть другие проблемы (если вы не используете устаревшую версию узла или что-то в этом роде).
d.setSeconds(d.getSeconds() - 92);и вы получите 2'32 "разница вместо 1'32". Решение с new Date(d.getTime() - 92*1000);работами однако!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Только для маньяков производительности среди нас.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5 196 949 операций в секунду, самый быстрый
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2936604 операций в секунду, на 43% медленнее
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22 549 операций в секунду, на 100% медленнее
Так что, возможно, это наименее понятный для человека (не так уж плох), но самый быстрый способ пойти :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Также, пожалуйста, обратитесь: Как добавить 30 минут к объекту JavaScript Date?
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)
Date()Объект в JavaScript не то, что умный очень.
Если вы просто сосредотачиваетесь на добавлении секунд, кажется, что все идет гладко, но если вы попытаетесь добавить X количество секунд, то добавьте X количество минут и часов и т. Д. К тому же Dateобъекту, который вы попали в беду. Поэтому я просто использовал только setSeconds()метод и конвертировал свои данные в секунды (что работало нормально).
Если кто-то может продемонстрировать добавление времени к глобальному Date()объекту, используя все методы набора, и получить правильное окончательное время, я хотел бы видеть это, но у меня есть ощущение, что один метод набора должен использоваться за один раз для данного Date()объекта и смешивание их приводит к беспорядку.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
Вы можете использовать setSecondsметод, получая секунды с сегодняшнего дня и просто добавив в него 10 секунд
var today = new Date();
today.setSeconds(today.getSeconds() + 10);Вы можете добавить 10 * 1000 миллисекунд к новой дате:
var today = new Date();
today = new Date(today.getTime() + 1000*10);Вы можете использовать setTime:
today.setTime(now.getTime() + 10000)Попробуйте так.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Просто позвоните и назначьте new Date().addSeconds(10)