1

モーメントjsで時間の更新を動的に確認するのに問題があります。正しい時刻が表示されますが、時刻を更新するにはブラウザを更新する必要があります。リアルタイムで更新してほしい。momentjs.comのメインページのように。

setIntervalとsetTimeoutを使用してみましたが、何らかの理由で、更新されない以下の数字が表示されます。

これが私がこれまでにコード的に持っているものです。瞬間に関しては非常に単純で、私が欲しいのは数え続けるための秒数だけです...

update = ->
  time = moment().format('hh:mm:ss a')

clock = setInterval update, 1000
console.log(clock) //output: 53296

どんなアイデアでも大歓迎です。

4

2 に答える 2

2

出力をupdateメソッド内に配置する必要があります。そうすれば、すべてが期待どおりに機能します。メソッドsetIntervalは、繰り返し呼び出されたメソッドの結果を返しませんが、clearIntervalで実行を停止するために使用できる識別子を返します。

時間を毎秒印刷し、10秒後に停止するためのほんの小さな実用的な例:

update = ->
    console.log(moment().format('hh:mm:ss a'))
x = setInterval update, 1000;
setTimeout (-> clearInterval(x)), 10000

その時間をDOM要素のコンテンツとして使用する場合は、更新関数内で次のコードを使用できます(IDが「time」の要素(divなど)があると仮定します)。

JQuery

$("#time").text(moment().format('hh:mm:ss a')) 

プレーンJS:

document.getElementById("time").firstChild.data = moment().format('hh:mm:ss a')
于 2012-12-18T01:59:40.640 に答える
0

これを試して。uがmeomentJSを使用する必要がない場合。 https://github.com/furkankaynak/countdown

于 2013-10-10T12:02:29.643 に答える