向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);
以下是一些可能有所帮助的文档 :