向Javascriptdate对象timeObject添加10秒

我如何添加10秒的JavaScriptdate对象timeObject。 像这样的东西,我想..

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 
 // var timeObject = new Date(); new Date(timeObject.getTime() + 10000); 
 var timeObject = new Date(); timeObject = new Date(timeObject .getTime() + 1000*10); console.log(timeObject); 

另请参阅: 如何将30分钟添加到JavaScriptdate对象?

只是为了performance疯子在我们中间。

的getTime

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

5,196,949 Ops /秒,最快


调用setSeconds

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

秒,2,936,604 Ops /秒,慢了43%


moment.js

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

秒,22,549 Ops /秒,慢100%


所以也许它是人类最不可读的(不是那么糟糕),而是最快的方法:)

jspref在线testing

尝试这个

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

JavaScript中的Date()对象实际上并不那么聪明。

如果你只是专注于增加秒数,它似乎可以顺利地处理事情,但如果你尝试添加X秒数,然后将X分钟数和小时数等添加到最后遇到麻烦的同一个Date对象中。 所以我只是回到只使用setSeconds()方法,并将我的数据转换成秒(工作正常)。

如果任何人都可以certificate使用所有set方法添加时间到一个全局的Date()对象,并有最后的时间出来正确我想看到它,但我觉得一个方法是一次使用一个给定Date()对象并混合它们会导致混乱。

 var vTime = new Date(); var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) ); vTime.setSeconds(iSecondsToAdd); 

以下是一些可能有所帮助的文档 :