Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помагите пожалуйста скрипт со временем (https://javascript.ru/forum/misc/34697-pomagite-pozhalujjsta-skript-so-vremenem.html)

Sejmon 15.01.2013 15:36

Помагите пожалуйста скрипт со временем
 
Люди выручите пожалуйста

вот у меня есть список с Временем : 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();

А как дальше написать код чтоб это показывалось как задумано мной??
помогите плз

mullih 15.01.2013 15:52

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

после узнаем какой сейчас час отнимаем от него начальный сдвиг и с полученного индекса берем элемент массива + следующий элеменет

ну соответсвенно проверки на крайние элементы

Sejmon 15.01.2013 16:09

напишите пожалуйста КОД а то всё равно маленько не понимаю
mullih Спасбо за инфу

рони 15.01.2013 16:25

Sejmon,
:cray:
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);

Sejmon 15.01.2013 16:45

Цитата:

Сообщение от рони (Сообщение 227392)
Sejmon,
:cray:
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(какая переменная здесь должна быть?)

Deff 15.01.2013 16:51

alert(forTime+"=>"+out); => document.write(forTime+"=>"+out);

JsLoveR 15.01.2013 16:57

рони, лучше всё же через 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);

dmitriymar 15.01.2013 17:16

Цитата:

Сообщение от JsLoveR
рони, лучше всё же через parseInt():

17:40 Ближе к 17 или 18?
а вот parseInt(17:40) вернёт 17.

рони 15.01.2013 17:26

JsLoveR,
Цитата:

Сообщение от JsLoveR
лучше всё же через parseInt():

лучше так как у меня в коде плюс
Цитата:

Сообщение от JsLoveR
out.push(time[k]);

это без проверки выведет несуществующие элементы

JsLoveR 15.01.2013 17:39

Вложений: 1
dmitriymar, рони, да, поспешил с выводом) Ошибка как на скрине сбила столку, подумал, что в условии она.
17: 6 => 6:00, 7:30

P.S.: а ошибочка оказалась в том, что не хватает 0, так 17:06, ибо 176 < 600 и 730


Часовой пояс GMT +3, время: 23:49.