Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2013, 15:36
Интересующийся
Отправить личное сообщение для Sejmon Посмотреть профиль Найти все сообщения от Sejmon
 
Регистрация: 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();

А как дальше написать код чтоб это показывалось как задумано мной??
помогите плз
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2013, 15:52
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

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

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

ну соответсвенно проверки на крайние элементы
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2013, 16:09
Интересующийся
Отправить личное сообщение для Sejmon Посмотреть профиль Найти все сообщения от Sejmon
 
Регистрация: 15.01.2013
Сообщений: 20

напишите пожалуйста КОД а то всё равно маленько не понимаю
mullih Спасбо за инфу
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2013, 16:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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.
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2013, 16:45
Интересующийся
Отправить личное сообщение для Sejmon Посмотреть профиль Найти все сообщения от Sejmon
 
Регистрация: 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(какая переменная здесь должна быть?)
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2013, 16:51
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

alert(forTime+"=>"+out); => document.write(forTime+"=>"+out);
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2013, 16:57
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 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.
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2013, 17:16
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от JsLoveR
рони, лучше всё же через parseInt():
17:40 Ближе к 17 или 18?
а вот parseInt(17:40) вернёт 17.
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2013, 17:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

JsLoveR,
Сообщение от JsLoveR
лучше всё же через parseInt():
лучше так как у меня в коде плюс
Сообщение от JsLoveR
out.push(time[k]);
это без проверки выведет несуществующие элементы
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2013, 17:39
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

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

P.S.: а ошибочка оказалась в том, что не хватает 0, так 17:06, ибо 176 < 600 и 730
Изображения:
Тип файла: jpg time.jpg (15.0 Кб, 7 просмотров)

Последний раз редактировалось JsLoveR, 15.01.2013 в 17:56.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
Напишите пожалуйста скрипт: показать скрытые папки, а через 15 секунд снова скрыть n35 Работа 4 24.09.2012 01:45
Напишите пожалуйста скрипт: показать скрытые папки, а через 15 секунд снова скрыть n35 Общие вопросы Javascript 0 21.09.2012 00:50
Помагите сделать этот скрипт на jquery hn2007 Элементы интерфейса 0 27.05.2012 17:44
Подкорректируйте скрипт пожалуйста или скажите куда глядеть rafka1 Javascript под браузер 1 12.05.2011 00:48