私は時間から正確に5分を計算する問題に直面しました。ここでシナリオは、サーバーの応答から私はの形式でYYYY-MM-DD HH:mm:ss
を取得した後、その時間の5分後にカウントするページにローカルタイマーを表示します。私はmomentjsとそれを行う。正確に日付から5分
var output = document.getElementById('out');
var fromCount = '2017-02-22 00:23:50';
var toMins = moment(fromCount).add(5, 'minutes');
var toMinsCount = setInterval(function(){
var now = moment();
var diff = moment(toMins - now).format('mm:ss');
if(diff==='00:00'){
clearInterval(toMinsCount);
// something more here
output.innerText = 'times up change fromCount data time';
}
if(now>toMins){
clearInterval(toMinsCount);
output.innerText = 'change fromCount data time';
} else {
output.innerText = diff;
}
},1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<div id="out"></div>
すべてが素晴らしく動作しますが、私は日付のカウンターに5分を追加したときに、時にはときのカウントから例えばデータは= '2017-02-22 00:30:50'
、今日付= '2017-02-22 00:30:15'
それが発生し、5:13
またはビット上位からカウントを開始。では、どうすればこの問題を回避し、正確に5:00
分のローカルカウンターを表示できますか?
私のカウンターは特別なイベントに依存しているので、サーバーの時間から数える必要があります。そして、私は、各ユーザがサーバが捕まった瞬間から同じ時間にページを表示するようになったことを示すべきである。地元の方法では、各ユーザーは自分の5分タイマーを見るでしょう。
ローカルカウンターを現地時間に合わせて5分カウントダウンするには、サーバーから何時間も返す必要があるのはなぜですか? – bejado
@bejado私の質問 – David