Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Работа со временем time + interval (https://javascript.ru/forum/dom-window/41317-rabota-so-vremenem-time-interval.html)

Spencer 08.09.2013 15:17

Работа со временем time + interval
 
Всем привет! Есть переменная хранящая текст, но не просто текст, а временной интервал, проще говоря часы приема, например 9.00 - 15.30. Этот период времени нужно разбить по 15 мин, т.е. 9.00 - 9.15, 9.15 - 9.30 и так далее... Как можно сделать такое на JS?

В результате мне нужно получить группу radio-box'ов из которых можно было бы выбрать один и это и был бы выбранный временной период, допустим 9.30 - 9.45. Использую jQuery, так что если есть у кого мыcли по этому поводу можно и на jQuery.

BETEPAH 08.09.2013 20:23

А можете объяснить, зачем нужен для этого js? Пропишите в html группу radio-box'ов

Spencer 08.09.2013 23:14

И?? Где динамика, если время измениться, снова рисовать ручками новую группу?

BETEPAH 09.09.2013 08:54

Цитата:

Сообщение от Spencer
И?? Где динамика, если время измениться, снова рисовать ручками новую группу?

:lol: какая может быть динамика в часах приема?
Ну, ладно. Алгоритм такой:
Парсите входящую строку, регулярным выражением получаете время начала и время конца, через цикл запускаете создание радио-боксов в группе, выводите на сайт. Все это можно и без jQuery

ksa 09.09.2013 10:30

Цитата:

Сообщение от BETEPAH
какая может быть динамика в часах приема?

Он ее сам создает, меняя временной интервал. :)
Это чистый тест на умение работать с типом "дата/время"...

Spencer 09.09.2013 15:58

Причем тут часы? Динамика в создании этих групп элементов

BETEPAH 09.09.2013 16:21

С Вас итоговая разметка и $10
<!DOCTYPE html>
<html><head></head>
<body>
<div id="target"></div>
<script>
var period = '9.00 - 11.29';
var expr = /\d?\d/g;
var startDate = new Date();
startDate.setHours(expr.exec(period), expr.exec(period), 0);
var stopDate = new Date();
stopDate.setHours(expr.exec(period), expr.exec(period), 0);
var out = '';
while(startDate < stopDate) {
	var str = humanHour(startDate.getHours()) + '.' + humanHour(startDate.getMinutes()); 
	out += '<input type="radio" id="' + str + '" name="time" value="' + str + '"><label for="' + str + '"> ' + str + ' - ';
	startDate.setMinutes(startDate.getMinutes() + 15);
	out += humanHour(thatBefore(startDate, stopDate).getHours()) + '.' + humanHour(thatBefore(startDate, stopDate).getMinutes()) + '</label><br />';
}
document.getElementById('target').innerHTML = out;
function humanHour(h){ return h < 10 ? '0' + h : h; }
function thatBefore(a, b){ return a < b ? a : b; } 
</script>
</body>
</html>


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