все понял, не проверил и сказал)) и вопрос тогда другой как сделать так чтобы это было под определенный часовой пояс...
|
Rise,
:thanks: |
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> |
Цитата:
|
Цитата:
|
wegas,
:-? |
Добрый вечер, пытаюсь переделать ваш скрипт чтобы было начало и конец события, пока безрезультатно. Мне нужно чтобы массив "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,
<!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> |
Класс, спасибо!
|
Доделал с расписанием может кому пригодятся наработки))
<!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> |
Часовой пояс GMT +3, время: 04:09. |