web-dev-qa-db-ja.com

JavaScriptの日付オブジェクトtimeObjectに10秒を追加

JavaScriptの日付オブジェクトtimeObjectに10秒を追加するにはどうすればよいですか。このようなものだと思います。

var timeObject = new Date()     
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
212
george

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
356
zzzzBov
// var timeObject = new Date();

new Date(timeObject.getTime() + 10000);
89
4esn0k
var timeObject = new Date(); 
timeObject = new Date(timeObject .getTime() + 1000*10);
console.log(timeObject);

また参照してください。JavaScriptのDateオブジェクトに30分を追加する方法?

53
Ron

パフォーマンスマニアのためだけに。

時間をもらう

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オンラインテスト

50
Danpe

これを試して

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

新しい亜種がいくつかあります

  1. var t = new Date(Date.now() + 10000);
  2. var t = new Date(+new Date() + 10000);
3
1nstinct

JavascriptのDate()オブジェクトは、それほどスマートではありません。

単に秒を追加することに集中するならば、それは物事を円滑に処理するように思われます、しかしあなたがX秒数を追加しようとするならば、同じDateオブジェクトにX分数と時間などを追加するでしょう。だから私は単にsetSeconds()メソッドを使うことと私のデータを秒に変換することだけに落ちました(これはうまくいきました)。

すべてのsetメソッドを使用してグローバルDate()オブジェクトに時間を追加して最終時間を正しく算出できることを誰かが実証できる場合は、一度に1つのsetメソッドを使用するようにします。与えられたDate()オブジェクトに対して、それらを混ぜると混乱します。

var vTime = new Date();

var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );

vTime.setSeconds(iSecondsToAdd);

これは役に立つかもしれないいくつかのより多くのドキュメンテーションです

2
coding_is_fun
  1. 今日から秒を取得し、その中に10秒を追加するだけでsetSecondsメソッドを使用できます。

    var today = new Date();
    today.setSeconds(today.getSeconds() + 10);
    
  2. 新しい日付に10 * 1000ミリ秒を追加することができます。

    var today = new Date(); 
    today = new Date(today.getTime() + 1000*10);
    
  3. setTimeを使用できます。

    today.setTime(now.getTime() + 10000)
    
2
Javed IN