[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Реализация графика работы
remenikomer
Что хочу сделать:
Пользователь выбирает дни недели. У каждого дня недели можно указать часы работы, они же интервалы работы (с - по).
Проблема в том, что не знаю как это можно реализовать, точнее представить работу на сайте... а тем более уже как хранить в БД.
Как вариант: при выборке чекбокса раскрывать форму с полями ввода "с" и "по". Пользователь вводит интервал, нажимает добавить. И на jquery интервал записывается чуть выше. Там собирается несколько интервалов для каждого дня.
А потом весь массив сериализовать и сохранять в таблицу.
Но возникают проблемы: по этим данным ничего не найти. Например, мне нужно найти того, кто может работать с обеда по выходным.
Да и будет проблема, когда пользователь ввел пересекающиеся интервалы.

Нашел еще такой вариант: сохранять все интервалы в таблицу: id, id_user, start, end. Только с предварительной проверкой на пересечения в дне недели.

Если кто-нибудь сталкивался с подобным, подскажите, пожалуйста.
BaNru
Цитата
а тем более уже как хранить в БД.

Записывай Unixdate [time()] две даты "с" и "по", тогда вопрос:
Цитата
Например, мне нужно найти того, кто может работать с обеда по выходным.

- отпадет сам собой (стериализовать ни чего не надо!)
Выборка будет примерно так (разумеется на SQL)
if (дата > time1 && дата < time2)
Тем более там у всех 12:00:00 12.04.2014 будет писаться одинаково до секунды.
if (дата = time1)

Для выбора времени есть плагины, вот первый же в гугле eng рус

Либо вспомни как устроен какой нить оутлук
remenikomer
Цитата (BaNru @ 12.04.2014 - 10:26)
Цитата
а тем более уже как хранить в БД.

Записывай Unixdate [time()] две даты "с" и "по", тогда вопрос:
Цитата
Например, мне нужно найти того, кто может работать с обеда по выходным.

- отпадет сам собой (стериализовать ни чего не надо!)
Выборка будет примерно так (разумеется на SQL)
if (дата > time1 && дата < time2)
Тем более там у всех 12:00:00 12.04.2014 будет писаться одинаково до секунды.
if (дата = time1)

Для выбора времени есть плагины, вот первый же в гугле eng рус

Либо вспомни как устроен какой нить оутлук

Но мне не нужно даты. Мне нужно только дни недели. Этот график будет повторяться каждую неделю, независимо от даты и года.
BaNru
Ну тогда возьми за ноль начало понедельника и отталкивайся от него, вместо unixdate, но так же в секундах или часах.
remenikomer
все равно не понял. Какие таблицы, какая их структура, где хранить время?
bret
Одна таблица с тремя полями: user_id, monday_timestamp_from, monday_timestamp_to
Если тяжко с вычислениями - юзайте доп.поле day_of_week и тогда weekday_timestamp соответственно.


_____________
Бывает, ты ешь медведя, а бывает, что медведь ест тебя (с)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.