Работа со временем 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, время: 20:02. |