JSFiddle - React, Tailwind, and code Playground

HTML

<div id="mydiv"></div>

JavaScript

$(function(){
			var timer,
				num = 19,
				output = $('#mydiv'),
				LS_allowed=('localStorage' in window);
			
			if(LS_allowed){
				var save_time=parseInt(localStorage.getItem('timer-time'))||0;
				if(save_time+1*60*60*1000>=(new Date()).getTime())
					num=localStorage.getItem('timer-num')||num;
			};
			 
			function changeNum(){
				output.text(num--);
				if(LS_allowed){
					localStorage.setItem('timer-num',num);
					localStorage.setItem('timer-time',(new Date()).getTime());
				};
				
				//каждый раз задержка будет на 100ms больше
				if(num>0)
					setTimeout(changeNum,500+(19-num)*100);
			};
			setTimeout(changeNum,500);
		});