Работа со временем 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. |
А можете объяснить, зачем нужен для этого js? Пропишите в html группу radio-box'ов
|
И?? Где динамика, если время измениться, снова рисовать ручками новую группу?
|
Цитата:
Ну, ладно. Алгоритм такой: Парсите входящую строку, регулярным выражением получаете время начала и время конца, через цикл запускаете создание радио-боксов в группе, выводите на сайт. Все это можно и без jQuery |
Цитата:
Это чистый тест на умение работать с типом "дата/время"... |
Причем тут часы? Динамика в создании этих групп элементов
|
С Вас итоговая разметка и $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, время: 10:17. |