JavaScriptの日付オブジェクトに10秒を追加するにはどうすればよいですか?
このようなもの:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
JavaScriptの日付オブジェクトに10秒を追加するにはどうすればよいですか?
このようなもの:
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);と、1'32 "ではなく2'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);
また 、JavaScriptのDateオブジェクトに30分を追加する方法を参照してください。
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を追加しようとすると、同じDateオブジェクトに分数と時間数Xなどを追加すると、問題が発生します。したがって、私は単にsetSeconds()メソッドをてデータを秒に変換する(これはうまくいきました)。
Date()すべてのsetメソッドを使用してグローバルオブジェクトに時間を追加することを誰かが示すことができ、最終時間が正しく出てくる場合、それを確認したいのですが、特定のDate()オブジェクトで一度に1つのsetメソッドを使用するという感覚が得られます。それらを混ぜると混乱につながります。
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
この方法を試してください。
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
ただ電話して割り当てる new Date().addSeconds(10)