Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.05.2017, 15:14
Аспирант
Отправить личное сообщение для wegas Посмотреть профиль Найти все сообщения от wegas
 
Регистрация: 07.03.2017
Сообщений: 30

все понял, не проверил и сказал)) и вопрос тогда другой как сделать так чтобы это было под определенный часовой пояс...

Последний раз редактировалось wegas, 05.05.2017 в 15:19.
Ответить с цитированием
  #12 (permalink)  
Старый 07.05.2017, 15:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Rise,
Ответить с цитированием
  #13 (permalink)  
Старый 07.05.2017, 15:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

wegas,
проверяйте ... -180 места установки таймзоны в минутах (Москва на 2017г.)
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
  <title></title>
</head>
<body><div id = 'show'></div>
<script>
Date.prototype.setTimezoneOffset = function(minutes) {
  var _minutes;
  if (this.timezoneOffset == _minutes) {
    _minutes = this.getTimezoneOffset();
  } else {
    _minutes = this.timezoneOffset;
  }
  if (arguments.length) {
    this.timezoneOffset = minutes;
  } else {
    this.timezoneOffset = minutes = this.getTimezoneOffset();
  }
  return this.setTime(this.getTime() + (_minutes - minutes) * 6e4);
};
function two(a) {
    return (9 < a ? "" : "0") + a
}
function formatTime(a) {
    a = Math.floor(a / 1E3);
    var c = Math.floor(a / 60),
        d = Math.floor(c / 60);
    a %= 60;
    c %= 60;
    return two(d) + " : " + two(c) + " : " + two(a)
}


function Time() {
    var a = new Date;
    a.setTimezoneOffset(-180);
    var c = [
    {t : "До начала занятий", h : 7, m : 30},
    {t : "До начала 1 урока", h : 8, m : 30},
    {t : "До конца 1 урока", h : 9, m : 15},
    {t : "До начала занятий", h : 7, m : 30}],
    d = [], e = a.getDate() + 1, b = 0;
    for (; b < c.length; b++)
    a.setHours(c[b].h, c[b].m, 0, 0),
    c.length-1 == b && a.setDate(e),
    d[b] = a.getTime();
    var k;
    for (b = 0; b < c.length && !(k = new Date,k.setTimezoneOffset(-180), a = d[b] - k.getTime(), 0 < a); b++);
    document.getElementById("show").innerHTML = c[b].t + " по Москве в " +c[b].h +":"+c[b].m+ " осталось " + formatTime(a);
    window.setTimeout(Time, 1E3)
};
Time()

</script>
</body>
</html>
Ответить с цитированием
  #14 (permalink)  
Старый 10.05.2017, 09:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от wegas
тогда еще вопрос
это к специалистам по серверу
Ответить с цитированием
  #15 (permalink)  
Старый 10.05.2017, 09:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
это к специалистам по серверу
скорее экстрасенсу, ибо понять "а этот скрипт по форме меняется + добавление" умом не постижимо.
Ответить с цитированием
  #16 (permalink)  
Старый 01.09.2018, 09:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

wegas,
Ответить с цитированием
  #17 (permalink)  
Старый 21.03.2019, 20:56
Аспирант
Отправить личное сообщение для wegas Посмотреть профиль Найти все сообщения от wegas
 
Регистрация: 07.03.2017
Сообщений: 30

Добрый вечер, пытаюсь переделать ваш скрипт чтобы было начало и конец события, пока безрезультатно. Мне нужно чтобы массив "C" можно было забивать примерно в таком виде:
c = [
{t : "Занятия завершены", h : 7, m : 00, h2: 8, m2: 00},
{t : "До начала 1 урока", h : 8, m : 00, h2: 8, m2: 45},
{t : "До окончания 1 урока(перемена)", h : 8, m : 45, h2: 8, m2: 55},
]

нужно для того чтобы составить расписание уроков и текущий урок обозначить красным цветом. и чтобы события именно в этот промежуток времени воспроизводилось)) если нет такого события по времени или оно прошло, то показывало что сейчас нет событий. Например:
c = [
{t : "Занятия завершены", h : 0, m : 00, h2: 7, m2: 10},
{t : "До начала 1 урока", h : 8, m : 00, h2: 8, m2: 45},
{t : "До окончания 1 урока(перемена)", h : 8, m : 45, h2: 8, m2: 55},
{t : "Занятия завершены", h : 17, m : 00, h2: 0, m2: 00},
]
здесь с 7: 10 до 8 часов нет события, отображало что сейчас нет событий, с 8 55 до 17 00 тоже нет событий!!
или как нибудь так))
С расписанием сделал так, переделав скрипт не меняя логики немного кривовато, но работает))
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
  <title></title>
</head>
<body><div id = 'show'></div>
<div id = 'Lessontimer_time2'></div>
<script>
function Lesson() {
var yrokvivod = [];
c = [
    {t : "Занятия завершены", h : 7, m : 00, lesson:11},
    {t : "До начала 1 урока", h : 8, m : 00, lesson:1},
    {t : "До окончания 1 урока", h : 8, m : 45, lesson:1},
    {t : "До начала 2 урока", h : 8, m : 55, lesson:2},
    {t : "До окончания 2 урока", h : 9, m : 40, lesson:2},
    {t : "До начала 3 урока", h : 10, m : 05, lesson:3},
    {t : "До окончания 3 урока", h : 10, m : 50, lesson:3},
    {t : "До начала 4 урока", h : 11, m : 15, lesson:4},
    {t : "До окончания 4 урока", h : 12, m : 00, lesson:4},
    {t : "До начала 5 урока", h : 12, m : 25, lesson:5},
    {t : "До окончания 5 урока", h : 13, m : 10, lesson:5},
    {t : "До начала 6 урока", h : 13, m : 20, lesson:6},
    {t : "До окончания 6 урока", h : 14, m : 05, lesson:6},
    {t : "До начала 7 урока", h : 14, m : 20, lesson:7},
    {t : "До окончания 7 урока", h : 15, m : 05, lesson:7},
    {t : "До начала 8 урока", h : 15, m : 15, lesson:8},
    {t : "До окончания 8 урока", h : 16, m : 00, lesson:8},
    {t : "До начала 9 урока", h : 16, m : 10, lesson:9},
    {t : "До окончания 9 урока", h : 16, m : 55, lesson:9},
    {t : "До начала 10 урока", h : 17, m : 05, lesson:10},
    {t : "До окончания 10 урока", h : 17, m : 55, lesson:10},
    {t : "Занятия завершены", h : 7, m : 00, lesson:11},
    ],
yrok = [];
array = [];
lesson1 = [];
j= 0;
k = 1; 
 for (var i = 0; i < c.length; i++) {
      yrok = [c[i].lesson];
         if (yrok != 0){
            	for (var property in yrok) {
                 	yrokvivod.push(yrok[property]);
                    
             	} 
         	}
         }
uniqueArray = yrokvivod.filter(function(elem, pos) {
                                return yrokvivod.indexOf(elem) == pos;
                            });
                            
                            
 for (var i = 0; i < c.length; i++) { // перебераем весь массив с уроками                   
                                yrok = [c[i].lesson]; // записываем
                             for (var j = 0; j < uniqueArray.length; j++) {  
                                    if (yrok == uniqueArray[j]){
                                                   array.push = [c[i].h + " : " + c[i].m];
                                                    //console.log('j' + j);

                                             for (var property in array) {
                                                lesson1.push(array[property]);
                                                //console.log(lesson1);
                                            }                                               
                                    }
                                  }
                                  
                            }

for(var i = 0; i < lesson1.length; ++i) {
    document.getElementById("Lessontimer_time2").innerHTML += "<div id='k" + k + "'>" + k +' Урок: c ' + lesson1[i] + ' по '  + lesson1[++i] + '</br>';
    k++          
}
             
};
        
Lesson();


function two(a) {
    return (9 < a ? "" : "0") + a
}
function formatTime(a) {
    a = Math.floor(a / 1E3);
    var c = Math.floor(a / 60),
        d = Math.floor(c / 60);
    a %= 60;
    c %= 60;
    return two(d) + " : " + two(c) + " : " + two(a)
}


function Time() {
    var a = new Date, 
    c = [
    {t : "Занятия завершены", h : 7, m : 00, lesson:11},
    {t : "До начала 1 урока", h : 8, m : 00, lesson:1},
    {t : "До окончания 1 урока", h : 8, m : 45, lesson:1},
    {t : "До начала 2 урока", h : 8, m : 55, lesson:2},
    {t : "До окончания 2 урока", h : 9, m : 40, lesson:2},
    {t : "До начала 3 урока", h : 10, m : 05, lesson:3},
    {t : "До окончания 3 урока", h : 10, m : 50, lesson:3},
    {t : "До начала 4 урока", h : 11, m : 15, lesson:4},
    {t : "До окончания 4 урока", h : 12, m : 00, lesson:4},
    {t : "До начала 5 урока", h : 12, m : 25, lesson:5},
    {t : "До окончания 5 урока", h : 13, m : 10, lesson:5},
    {t : "До начала 6 урока", h : 13, m : 20, lesson:6},
    {t : "До окончания 6 урока", h : 14, m : 05, lesson:6},
    {t : "До начала 7 урока", h : 14, m : 20, lesson:7},
    {t : "До окончания 7 урока", h : 15, m : 05, lesson:7},
    {t : "До начала 8 урока", h : 15, m : 15, lesson:8},
    {t : "До окончания 8 урока", h : 16, m : 00, lesson:8},
    {t : "До начала 9 урока", h : 16, m : 10, lesson:9},
    {t : "До окончания 9 урока", h : 16, m : 55, lesson:9},
    {t : "До начала 10 урока", h : 17, m : 05, lesson:10},
    {t : "До окончания 10 урока", h : 17, m : 55, lesson:10},
    {t : "Занятия завершены", h : 7, m : 00, lesson:11},
    ],
    d = [], e = a.getDate() + 1, b = 0;
    for (; b < c.length; b++)
    a.setHours(c[b].h, c[b].m, 0, 0),
    c.length-1 == b && a.setDate(e),
    d[b] = a.getTime();
    for (b = 0; b < c.length && !(a = d[b] - (new Date).getTime(), 0 < a); b++);
    if (c[b].t != 'Занятия завершены'){
    var style2 = c[b].lesson;
    document.getElementById("k"+ style2).style.backgroundColor = "#960505";
     document.getElementById("show").innerHTML = c[b].t + " в " +c[b].h +":"+c[b].m+ " осталось " + formatTime(a);
     window.setTimeout(Time, 1E3)
    
    }
    else {
    var style2 = c[b].lesson;
    document.getElementById("k"+ style2).style.backgroundColor = "#960505";
    document.getElementById("show").innerHTML = c[b].t;
     window.setTimeout(Time, 1E3)
    }
   
};
Time();


</script>
</body>
</html>

Последний раз редактировалось wegas, 22.03.2019 в 08:19.
Ответить с цитированием
  #18 (permalink)  
Старый 21.03.2019, 22:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

расписание от и до
wegas,
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
    <title></title>
</head>
<body><div id = 'show'></div>
<script>
Date.prototype.setTimezoneOffset = function(minutes) {
    var _minutes;
    if (this.timezoneOffset == _minutes) {
        _minutes = this.getTimezoneOffset();
    } else {
        _minutes = this.timezoneOffset;
    }
    if (arguments.length) {
        this.timezoneOffset = minutes;
    } else {
        this.timezoneOffset = minutes = this.getTimezoneOffset();
    }
    return this.setTime(this.getTime() + (_minutes - minutes) * 6e4);
};

function two(a) {
    return (9 < a ? "" : "0") + a
}

function formatTime(a) {
    a = Math.floor(a / 1E3);
    var c = Math.floor(a / 60),
        d = Math.floor(c / 60);
    a %= 60;
    c %= 60;
    return two(d) + " : " + two(c) + " : " + two(a)
}


function Time() {
    var a = new Date;
    a.setTimezoneOffset(-180);
    var ms = a.getTime();
    var c = [{
            t: "Занятия завершены",
            h: 0,
            m: 00,
            h2: 7,
            m2: 10
        },
        {
            t: "До начала 1 урока",
            h: 8,
            m: 00,
            h2: 8,
            m2: 45
        },
        {
            t: "До окончания 1 урока(перемена)",
            h: 8,
            m: 45,
            h2: 8,
            m2: 55
        },
        {
            t: "Занятия завершены",
            h: 17,
            m: 00,
            h2: 23,
            m2: 59
        },
        {
            t: "До начала 15 урока",
            h: 20,
            m: 00,
            h2: 22,
            m2: 30
        },
    ];

    c = c.filter(function(v) {
        a.setHours(v.h, v.m, 0, 0)
        var from = a.getTime();
        a.setHours(v.h2, v.m2, 0, 0);
        var to = a.getTime();
        v.time = to - ms;
        return from < ms && ms < to
    })

    var html = c.reduce(function(html, v) {
        return html += v.t + " по Москве до " + v.h2 + ":" + v.m2 + " осталось " + formatTime(v.time) + "<br>";
    }, "")


    document.getElementById("show").innerHTML = html || "сейчас нет событий";
    window.setTimeout(Time, 1E3)
};
Time()
</script>
</body>
</html>
Ответить с цитированием
  #19 (permalink)  
Старый 22.03.2019, 08:19
Аспирант
Отправить личное сообщение для wegas Посмотреть профиль Найти все сообщения от wegas
 
Регистрация: 07.03.2017
Сообщений: 30

Класс, спасибо!
Ответить с цитированием
  #20 (permalink)  
Старый 22.03.2019, 11:35
Аспирант
Отправить личное сообщение для wegas Посмотреть профиль Найти все сообщения от wegas
 
Регистрация: 07.03.2017
Сообщений: 30

Доделал с расписанием может кому пригодятся наработки))
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
    <title></title>
</head>
<body><div id = 'show'></div>
<div id = 'Lessontimer_time2'></div>

<script>
function table() {
    var c = [
    {t : "Занятия завершены", h : 00, m : 00, h2: 7, m2: 00, lesson:'Конец дня', lesid:1},
    {t : "До начала 1 урока", h : 7, m : 00, h2: 8, m2: 00, lesson:'Перемена', lesid:2},
    {t : "До окончания 1 урока", h : 8, m : 00, h2: 8, m2: 45, lesson:'1 Урок', lesid:3},
    {t : "До начала 2 урока", h : 8, m : 45, h2: 8, m2: 55, lesson:'Перемена', lesid:4},
    {t : "До окончания 2 урока", h : 8, m : 55, h2: 9, m2: 40, lesson:'2 Урок', lesid:5},
    {t : "До начала 3 урока", h : 9, m : 40, h2: 10, m2: 05, lesson:'Перемена', lesid:6},
    {t : "До окончания 3 урока", h : 10, m : 05, h2: 10, m2: 50, lesson:'3 Урок', lesid:7},
    {t : "До начала 4 урока", h : 10, m : 50, h2: 11, m2: 15, lesson:'Перемена', lesid:8},
    {t : "До окончания 4 урока", h : 11, m : 15, h2: 12, m2: 00, lesson:'4 Урок', lesid:9},
    {t : "До начала 5 урока", h : 12, m : 00, h2: 12, m2: 25, lesson:'Перемена', lesid:10},
    {t : "До окончания 5 урока", h : 12, m : 25, h2: 13, m2: 10, lesson:'5 Урок', lesid:11},
    {t : "До начала 6 урока", h : 13, m : 10, h2: 13, m2: 20, lesson:'Перемена', lesid:12},
    {t : "До окончания 6 урока", h : 13, m : 20, h2: 14, m2: 05, lesson:'6 Урок', lesid:13},
    {t : "До начала 7 урока", h : 14, m : 05, h2: 14, m2: 20, lesson:'Перемена', lesid:14},
    {t : "До окончания 7 урока", h : 14, m : 20, h2: 15, m2: 05, lesson:'7 Урок', lesid:15},
    {t : "До начала 8 урока", h : 15, m : 05, h2: 15, m2: 15, lesson:'Перемена', lesid:16},
    {t : "До окончания 8 урока", h : 15, m : 15, h2: 16, m2: 00, lesson:'8 Урок', lesid:17},
    {t : "До начала 9 урока", h : 16, m : 00, h2: 16, m2: 10, lesson:'Перемена', lesid:18},
    {t : "До окончания 9 урока", h : 16, m : 10, h2: 16, m2: 55, lesson:'9 Урок', lesid:19},
    {t : "До начала 10 урока", h : 16, m : 55, h2: 17, m2: 05, lesson:'Перемена', lesid:20},
    {t : "До окончания 10 урока", h : 17, m : 05, h2: 17, m2: 55, lesson:'10 Урок', lesid:21},
    {t : "Занятия завершены", h : 17, m : 55, h2: 23, m2: 59, lesson:'Перемена', lesid:22},
    ]
    
   
    
    for(var i = 0; i < c.length; ++i) {
    if(c[i].lesson == 'Перемена'){
    
    }
    else{
    document.getElementById("Lessontimer_time2").innerHTML += "<div id='k" + c[i].lesid + "'>" + c[i].lesson +' c ' + c[i].h + ':' + c[i].m + ' по '  + c[i].h2 + ':'+ c[i].m2 + '</br>';
    }
             
}
};


table()
Date.prototype.setTimezoneOffset = function(minutes) {
    var _minutes;
    if (this.timezoneOffset == _minutes) {
        _minutes = this.getTimezoneOffset();
    } else {
        _minutes = this.timezoneOffset;
    }
    if (arguments.length) {
        this.timezoneOffset = minutes;
    } else {
        this.timezoneOffset = minutes = this.getTimezoneOffset();
    }
    return this.setTime(this.getTime() + (_minutes - minutes) * 6e4);
};

function two(a) {
    return (9 < a ? "" : "0") + a
}

function formatTime(a) {
    a = Math.floor(a / 1E3);
    var c = Math.floor(a / 60),
        d = Math.floor(c / 60);
    a %= 60;
    c %= 60;
    return two(d) + " : " + two(c) + " : " + two(a)
}


function Time() {
    var a = new Date;
    a.setTimezoneOffset();
    var ms = a.getTime();
    c = [
    {t : "Занятия завершены", h : 00, m : 00, h2: 7, m2: 00, lesson:'Конец дня', lesid:1},
    {t : "До начала 1 урока", h : 7, m : 00, h2: 8, m2: 00, lesson:'Перемена', lesid:2},
    {t : "До окончания 1 урока", h : 8, m : 00, h2: 8, m2: 45, lesson:'1 Урок', lesid:3},
    {t : "До начала 2 урока", h : 8, m : 45, h2: 8, m2: 55, lesson:'Перемена', lesid:4},
    {t : "До окончания 2 урока", h : 8, m : 55, h2: 9, m2: 40, lesson:'2 Урок', lesid:5},
    {t : "До начала 3 урока", h : 9, m : 40, h2: 10, m2: 05, lesson:'Перемена', lesid:6},
    {t : "До окончания 3 урока", h : 10, m : 05, h2: 10, m2: 50, lesson:'3 Урок', lesid:7},
    {t : "До начала 4 урока", h : 10, m : 50, h2: 11, m2: 15, lesson:'Перемена', lesid:8},
    {t : "До окончания 4 урока", h : 11, m : 15, h2: 12, m2: 00, lesson:'4 Урок', lesid:9},
    {t : "До начала 5 урока", h : 12, m : 00, h2: 12, m2: 25, lesson:'Перемена', lesid:10},
    {t : "До окончания 5 урока", h : 12, m : 25, h2: 13, m2: 10, lesson:'5 Урок', lesid:11},
    {t : "До начала 6 урока", h : 13, m : 10, h2: 13, m2: 20, lesson:'Перемена', lesid:12},
    {t : "До окончания 6 урока", h : 13, m : 20, h2: 14, m2: 05, lesson:'6 Урок', lesid:13},
    {t : "До начала 7 урока", h : 14, m : 05, h2: 14, m2: 20, lesson:'Перемена', lesid:14},
    {t : "До окончания 7 урока", h : 14, m : 20, h2: 15, m2: 05, lesson:'7 Урок', lesid:15},
    {t : "До начала 8 урока", h : 15, m : 05, h2: 15, m2: 15, lesson:'Перемена', lesid:16},
    {t : "До окончания 8 урока", h : 15, m : 15, h2: 16, m2: 00, lesson:'8 Урок', lesid:17},
    {t : "До начала 9 урока", h : 16, m : 00, h2: 16, m2: 10, lesson:'Перемена', lesid:18},
    {t : "До окончания 9 урока", h : 16, m : 10, h2: 16, m2: 55, lesson:'9 Урок', lesid:19},
    {t : "До начала 10 урока", h : 16, m : 55, h2: 17, m2: 05, lesson:'Перемена', lesid:20},
    {t : "До окончания 10 урока", h : 17, m : 05, h2: 17, m2: 55, lesson:'10 Урок', lesid:21},
    {t : "Занятия завершены", h : 17, m : 55, h2: 23, m2: 59, lesson:'Перемена', lesid:22},
    ],

    c = c.filter(function(v) {
        a.setHours(v.h, v.m, 0, 0)
        var from = a.getTime();
        a.setHours(v.h2, v.m2, 0, 0);
        var to = a.getTime();
        v.time = to - ms;
        return from < ms && ms < to
    })
	
    var html = c.reduce(function(html, v) {
    
        return html += v.lesson + ' ' + v.t + "  " + v.h2 + ":" + v.m2 + " осталось " + formatTime(v.time) + "<br>";
    
    }, ""),
	
   table = c.reduce(function(html, v) {
    
        return table = v.lesid
    
    }, "")
 for(var i = 0; i < c.length; ++i) {   
		if (c[i].lesson == 'Перемена'){
      
		}
        else {
        document.getElementById("k"+ table).style.backgroundColor = "#960505"; 

        }
}
    

console.log(table);

    document.getElementById("show").innerHTML = html || "сейчас нет событий";
    window.setTimeout(Time, 1E3)
};


Time()




</script>
</body>
</html>

Последний раз редактировалось wegas, 22.03.2019 в 11:39.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите справиться с таймером user999 jQuery 5 12.12.2016 23:16
Помогите с таймером tai Общие вопросы Javascript 1 04.07.2014 16:12
Помогите с таймером Helen0104 Общие вопросы Javascript 2 21.01.2014 21:43
Помогите с таймером отсчета времени dimentiy89 Элементы интерфейса 11 29.11.2013 22:41
Помогите с таймером и окошком! xXapokalypsesXx Общие вопросы Javascript 4 07.06.2012 01:12