Як я можу додати 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);
2,936,604 Оп / сек, на 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?
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)
У мене є пара нових варіантів
var t = new Date(Date.now() + 10000);var t = new Date(+new Date() + 10000);Date()Об'єкт в JavaScript НЕ то, що розумний дуже.
Якщо ви зосереджуєтеся лише на додаванні секунд, то, здається, виправляєтесь справи безперебійно, але якщо ви намагаєтеся додати 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)