javascrip,
<html>
<head>
<meta charset="utf-8" />
    <title></title>
</head>
<body>
<div data-init="9/9/2018" data-period="1" data-minutes="600" >до 10 часов утра осталось</div>
<div data-init="8/27/2018" data-period="7" >до конца недели осталось</div>
<script>
/* data-minutes="600"  10 часов утра */
function two(a) {
        return (9 < a ? "" : "0") + a
}
function formatTime(a) {
        a = Math.floor(a / 1E3);
        var b = Math.floor(a / 60),
                c = Math.floor(b / 60),
                d = c / 24 | 0,
                c = c % 24;
        a %= 60;
        b %= 60;
        return d + " " + two(c) + " : " + two(b) + " : " + two(a)
};
function timeInit()
{
var divs=document.querySelectorAll('[data-init]');
[].forEach.call(divs, function(div) {
var init = div.dataset.init;  // дата начала периода  строго "месяц/день/год"
var period = +div.dataset.period;
var minutes  = +div.dataset.minutes  || 0;
var time = function() {
        var data = Date.parse(init)
        data = new Date(data);
        data.setMinutes((-180 - data.getTimezoneOffset()) + minutes, 0, 0); //для коррекции   запустить в зоне акции alert((new Date).getTimezoneOffset()) и поменять -180(москва)
        for (; (new Date).getTime() > data; )  {
        data.setDate(data.getDate()+period)
        }
        var a = data.getTime() -  (new Date).getTime();
        div.innerHTML = formatTime(a);
        window.setTimeout(time, 1E3)
}
time()
});
}
document.addEventListener('DOMContentLoaded', timeInit)
</script>
</body>
</html>