Я написал код для таймера обратного отсчета, используя Javascript, и чтобы сделать его динамичным, я дал возможность администратору соответственно изменить время. Javascript принимает входные данные в MM: SS, я использовал следующий тип данных в model.py, и система использует его в формате HH: MM, поэтому я не могу установить время для более чем 24 минут, значения, которые он показывает, взяты из С 00:00 до 23:00 Есть ли какой-либо тип данных или способ разрешения формата времени. Моему приложению нужен таймер в MM: SS и не нужны часы.
model.py
class PhysicalPostPage(AbstractForm):
intro = RichTextField(blank=True)
strength = RichTextField(blank=True)
agility = RichTextField(blank=True)
flexibility = RichTextField(blank=True)
points_for_this_activity = models.IntegerField(blank=True, default=0)
timer_for_this_activity = models.TimeField(blank=True, default=datetime.time(00, 11))
thank_you_text = RichTextField(blank=True)
Для целей тестирования я установил таймер на 11 секунд.
* Javascript 1011 *
function doCount(){
var timer2 = "{{ page.timer_for_this_activity|safe }}";
var interval = setInterval(function() {
var timer = timer2.split(':');
//by parsing integer, I avoid all extra string processing
var minutes = parseInt(timer[0], 10);
var seconds = parseInt(timer[1], 10);
--seconds;
minutes = (seconds < 0) ? --minutes : minutes;
seconds = (seconds < 0) ? 59 : seconds;
seconds = (seconds < 10) ? '0' + seconds : seconds;
//minutes = (minutes < 10) ? minutes : minutes;
$('#countdown').html(minutes + ':' + seconds);
if (minutes < 0)
clearInterval(interval);
//check if both minutes and seconds are 0
if ((seconds <= 0) && (minutes <= 0)){
clearInterval(interval);
$('#done').show();
$('#countdown').hide();
}
timer2 = minutes + ':' + seconds;
}, 1000);
}