Показать сообщение отдельно
  #10 (permalink)  
Старый 20.08.2016, 15:44
Аспирант
Отправить личное сообщение для Feex Посмотреть профиль Найти все сообщения от Feex
 
Регистрация: 30.12.2015
Сообщений: 84

В общем я покажу оба по отдельности:
<div id = 'show'></div>
<script type="text/javascript" ">
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 two(c) + " " + hours(c) + " " + two(b) + " " + minutes(b) + " " + two(a) + " " + seconds(a)
};

// функция для склонения слов ( (1)"день", (2)"дня", (5)"дней")

function plural(str1,str2,str5){
  return function ( n ) {return ((((n%10)==1)&&((n%100)!=11))?(str1):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(str2):(str5)))}
  }

var hours = plural('час', 'часа', 'часов'),
    minutes = plural('минута', 'минуты', 'минут'),
    seconds = plural('сек.', 'сек.', 'сек.');

function Time() {
    var data = Date.parse('01/01/2016') // дата начала 1 шестидневки  строго "месяц/день/год"
    data = new Date(data);
    data.setMinutes((-120 - data.getTimezoneOffset()), 0, 0); //для коррекции   запустить в зоне акции alert((new Date).getTimezoneOffset()) и поменять число
    for (; (new Date).getTime() > data; )  {
    data.setDate(data.getDate()+1)//через сутки +1 , через 6 дней +6
    }
    var a = data.getTime() -  (new Date).getTime();
    var pos = ((86400000-a)/86400000*10000|0)/100;
    //document.getElementById('bar').style.width= pos +'%';
    //document.getElementById("bar").innerHTML =  pos +'%'
    document.getElementById("show").innerHTML = "До конца дня осталось: " + formatTime(a) + " <br>";
    window.setTimeout(Time, 1E3)
};
Time()

</script>

и второй:
<div id = 'leto'></div>

<script type="text/javascript" >
function one(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 "<span class='number'>" + d + "</span> " + days(d) + " <span class='number'>" + one(c) + "</span> " + hours(c) + " <span class='number'>" + one(b) + "</span> " + minutes(b) + " <span class='number'>" + one(a) + "</span> " + seconds(a)
};

// функция для склонения слов ( (1)"день", (2)"дня", (5)"дней")

function plural(str1,str2,str5){
  return function ( n ) {return ((((n%10)==1)&&((n%100)!=11))?(str1):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(str2):(str5)))}
  }

var days =  plural('день', 'дня', 'дней'),
    hours = plural('час', 'часа', 'часов'),
    minutes = plural('минута', 'минуты', 'минут'),
    seconds = plural('сек.', 'сек.', 'сек.');
function Time1() {
       var a = new Date,
           b = new Date(a.getFullYear(), 5, 1, 0, 0, 0),
           d = "начала";
       a.getTime() > b.getTime() && (b = new Date(a.getFullYear(), 8, 1, 0, 0, 0), b.getTime() > a.getTime() ? d = "конца" : b = new Date(a.getFullYear() + 1, 5, 1, 0, 0, 0));
       a = b.getTime() - a.getTime();
       document.getElementById("leto").innerHTML = "До " + d + " лета осталось: " + formatTime(a);
       window.setTimeout(Time1, 1E3)
   };
Time1()
</script>


Они немного отличаются - первый Вы делали - он показывает сколько до конца дня осталось.
А второй я переделал "до конца/начала лета" показывает.
После Ваших подсказок оба работают на одной странице, но в первом скрипте показывается еще и кол-во дней. Если он один на странице, то дни не показываются. т.е надо изменить второй скрипт так, что бы он не выводил дни в первом.

Последний раз редактировалось Feex, 20.08.2016 в 15:48.
Ответить с цитированием