15.01.2013, 15:36
|
Интересующийся
|
|
Регистрация: 15.01.2013
Сообщений: 20
|
|
Помагите пожалуйста скрипт со временем
Люди выручите пожалуйста
вот у меня есть список с Временем : 6:00, 7:30, 8:30, 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 21:30
на ПК время например сейчас 13.34
как сделать чтоб он посмотрел время на пк и вывел из "списка с временем" время близкое к временю с ПК. два времени назад и два времени вперёд
ВОт например: время 13.34(ПК) и он мне должен вывести из списка со временем 12.00 13.00 и 14.00 15.00
//вот скрипт чтоб показывалось время с пк
var forTime = new Date();
var year =forTime.getFullYear();
var hour = forTime.getHours();
var minutes = forTime.getMinutes();
А как дальше написать код чтоб это показывалось как задумано мной??
помогите плз
|
|
15.01.2013, 15:52
|
Аспирант
|
|
Регистрация: 05.08.2012
Сообщений: 77
|
|
не буду писать код, но шустреньки алгоритм получится как мне кажется если список держать в массиве изначально знать что для первого элемента будет 6 часов и соответственно это будет наша начальный сдвиг
после узнаем какой сейчас час отнимаем от него начальный сдвиг и с полученного индекса берем элемент массива + следующий элеменет
ну соответсвенно проверки на крайние элементы
|
|
15.01.2013, 16:09
|
Интересующийся
|
|
Регистрация: 15.01.2013
Сообщений: 20
|
|
напишите пожалуйста КОД а то всё равно маленько не понимаю
mullih Спасбо за инфу
|
|
15.01.2013, 16:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Sejmon,
var time = "6:00 7:30 8:30 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 21:30".split(" "),
out = [], forTime = (new Date()).getHours()+":"+(new Date()).getMinutes();
for (var i=0; i<time.length; i++) {
if (+time[i].replace(":","")>+forTime.replace(":",""))
{for (var k=i-2; k<i+2; k++) {
time[k] && out.push(time[k])
};break}
}
alert(forTime+"=>"+out);
Последний раз редактировалось рони, 15.01.2013 в 16:32.
|
|
15.01.2013, 16:45
|
Интересующийся
|
|
Регистрация: 15.01.2013
Сообщений: 20
|
|
Сообщение от рони
|
Sejmon,
var time = "6:00 7:30 8:30 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 21:30".split(" "),
out = [], forTime = (new Date()).getHours()+":"+(new Date()).getMinutes();
for (var i=0; i<time.length; i++) {
if (+time[i].replace(":","")>+forTime.replace(":",""))
{for (var k=i-2; k<i+2; k++) {
time[k] && out.push(time[k])
};break}
}
alert(forTime+"=>"+out);
|
а как вывести на странице? document.write(какая переменная здесь должна быть?)
|
|
15.01.2013, 16:51
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
alert(forTime+"=>"+out); => document.write(forTime+"=>"+out);
|
|
15.01.2013, 16:57
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
рони, лучше всё же через parseInt():
var time = "6:00 7:30 8:30 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 21:30".split(" "),
out = [], forTime = (new Date()).getHours()+":"+(new Date()).getMinutes();
for(var i = 0; i < time.length; i++) {
if(parseInt(time[i]) > parseInt(forTime)) {
for(var k = i-2; k < i+2; k++) {
out.push(time[k]);
}
break;
}
}
document.write(forTime+"=>"+out);
Последний раз редактировалось JsLoveR, 15.01.2013 в 17:08.
|
|
15.01.2013, 17:16
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от JsLoveR
|
рони, лучше всё же через parseInt():
|
17:40 Ближе к 17 или 18?
а вот parseInt(17:40) вернёт 17.
|
|
15.01.2013, 17:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
JsLoveR,
Сообщение от JsLoveR
|
лучше всё же через parseInt():
|
лучше так как у меня в коде плюс
Сообщение от JsLoveR
|
out.push(time[k]);
|
это без проверки выведет несуществующие элементы
|
|
15.01.2013, 17:39
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
dmitriymar, рони, да, поспешил с выводом) Ошибка как на скрине сбила столку, подумал, что в условии она.
17: 6 => 6:00, 7:30
P.S.: а ошибочка оказалась в том, что не хватает 0, так 17:06, ибо 176 < 600 и 730
Последний раз редактировалось JsLoveR, 15.01.2013 в 17:56.
|
|
|
|