Я столкнулся с проблемой рассчитать точную 5 минут от времени. Вот сценарий, с ответа сервера я получаю dateTime
в формате YYYY-MM-DD HH:mm:ss
после этого я показываю местный таймер на странице, который насчитывает 5 минут после этого времени. Я делаю это с помощью импульсов.счетчик точно 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 минут до начала счетчика даты считать от 5:13
или немного выше, это происходит, когда, например, данные из подсчета = '2017-02-22 00:30:50'
и теперь дата = '2017-02-22 00:30:15'
, Итак, как я могу избежать этой проблемы и показать местный счетчик точно 5:00
минут?
Мне нужно посчитать это с сервера, потому что мой счетчик зависит от специального события. И я должен показать, что каждый пользователь приходил на страницу одновременно с момента, когда у сервера есть ловушка. По местному пути каждый пользователь увидит собственный таймер с 5 минутами.
Если вы хотите, чтобы ваш местный счетчик обратный отсчет времени составлял 5 минут в соответствии с местным временем, зачем вам нужно возвращать время со своего сервера? – bejado
@bejado Я отредактировал мой вопрос – David