В основном я бы использовал:
business_id - int (11)
weekday - enum('sun','mon','tue','wed','thu','fri','sat')
start_unix - int(11)
end_unix - int(11)
В день 86 86 секунд.Вы можете просто сохранить секунды, прошедшие с начала дня.
Чтобы получить данные о времени работы определенного дня, вы должны сделать что-то вроде:
$str_week_day = strtolower(date('D'));
SELECT start_unix, end_unix
FROM business_hours
WHERE business_id = {$int_business_id} AND weekday = '{$str_week_day}'
Затем, чтобы получить время, вы 'сделайте так:
$str_start = date('Ha', strtotime('today') + $row->start_unix);
$str_end = date('Ha', strtotime('today') + $row->end_unix);
echo "{$str_start}-{$start_end}";
При вводе / создании строки вы просто выполните:
// $_POST['start_unix'] could be 09:50am
$int_start_unix = strtotime($_POST['start_unix']) - strtotime('today');