как сделать выделение ячейки таблицы в зависимости от даты?

iskif

Профессор
Регистрация
21 Авг 2006
Сообщения
365
Реакции
45
все, наверное, видели офф-лайновую версию 2gis. Вот там в табличке "часы работы" ячейка, соответствующая сегодняшней дате, вернее, дню недели, закрашена другим цветом.
как такое сделать на сайте и, желательно, не очень "тяжёлыми" средствами? Не обязательно цветом, можно просто другим\жирным шрифтом. Но как-нибудь выделить среди остальных.
 

kabasik

Полиционер
Регистрация
14 Мар 2012
Сообщения
224
Реакции
73
for ($таблица)
{
$style = (текущая дата) ? " style='(цвет фона и тп)'" : '';
echo '<tr'.$style.'>';
{
что то типа этого
 

Ведун

Постоялец
Регистрация
21 Авг 2008
Сообщения
65
Реакции
33
Я бы сделал немного по другому. Если ячейка содержит дату, то можно сравнивать её с текущей датой на сервере, либо на компе пользователя, и если они равны, подчеркивать/выделять требуемое.

Например так:

if ($date_iz_td == date(d)) {echo 'style="стили"'}
 

nethare

Постоялец
Регистрация
27 Окт 2012
Сообщения
104
Реакции
29
Ячейка скорее всего содержит только число текущей даты. Если пользователю выводится только один текущий месяц,можно сравнивать только текущее число:

PHP:
<table>
НАЧАЛО_ЦИКЛА_ВЫВОДА_КАЛЕНДАРЯ (for,while, foreach)
...
<td
if ($day == date('d')) {
  echo " style='font-weight:700;' ";
}
 
>
//$day - переменная с значением ячейки
 
 
</td>
...
КОНЕЦ_ЦИКЛА_ВЫВОДА_КАЛЕНДАРЯ
</table>

ТС, для начала скажите, у вас календарь выводится текстом на php или это яваскриптовая штука? Покажите исходники вашего календаря.

В любом случае общее решение - сравнивать в цикле значение каждой ячейки с текущей датой (числом, днем) и добавлять стиль/класс.


P.S.
Я бы сделал немного по другому. Если ячейка содержит дату, то можно сравнивать её с текущей датой на сервере, либо на компе пользователя, и если они равны, подчеркивать/выделять требуемое.

Например так:

if ($date_iz_td == date(d)) {echo 'style="стили"'}
date в качестве формата принимает строку: date('d');
 

iskif

Профессор
Регистрация
21 Авг 2006
Сообщения
365
Реакции
45
Ячейка скорее всего содержит только число текущей даты. Если пользователю выводится только один текущий месяц,можно сравнивать только текущее число:


ТС, для начала скажите, у вас календарь выводится текстом на php или это яваскриптовая штука? Покажите исходники вашего календаря.

В любом случае общее решение - сравнивать в цикле значение каждой ячейки с текущей датой (числом, днем) и добавлять стиль/класс.


P.S.
date в качестве формата принимает строку: date('d');
я, похоже, некорректно обозначил тему
хоть я там и уточнил, что не с датой сравнивать, а с днём недели
календарь это не php и не ява-скрипт, это просто таблица с часами работы организации, для удобства восприятия хотел выделить текущий день недели цветом фона ячеек
 

Ведун

Постоялец
Регистрация
21 Авг 2008
Сообщения
65
Реакции
33
я, похоже, некорректно обозначил тему
хоть я там и уточнил, что не с датой сравнивать, а с днём недели
календарь это не php и не ява-скрипт, это просто таблица с часами работы организации, для удобства восприятия хотел выделить текущий день недели цветом фона ячеек

О, ну так и надо было сказать. Проверяйте какой сейчас день недели и присваивайте стиль.

PHP:
<table>
<tr>
<td <?php if (date('N')=='1') {echo 'style="background:#bebebe"';} ?>>Понедельник</td>
<td <?php if (date('N')=='2') {echo 'style="background:#bebebe"';} ?>>Вторник</td>
<td <?php if (date('N')=='3') {echo 'style="background:#bebebe"';} ?>>Среда</td>
<td <?php if (date('N')=='4') {echo 'style="background:#bebebe"';} ?>>Четверг</td>
<td <?php if (date('N')=='5') {echo 'style="background:#bebebe"';} ?>>Пятница</td>
<td <?php if (date('N')=='6') {echo 'style="background:#bebebe"';} ?>>Суббота</td>
<td <?php if (date('N')=='7') {echo 'style="background:#bebebe"';} ?>>Воскресенье</td>
</tr>
</table>
 

nevergoinside

Писатель
Регистрация
29 Сен 2011
Сообщения
5
Реакции
0
Хочу добавить, если php ниже версии 5.1 - используйте date('w');
 

shturmanz

Полезный
Регистрация
4 Фев 2010
Сообщения
241
Реакции
17
Простите, хочу апнуть тему, можно ли тоже самое только для времени?
тоесть таблица с расписанием автобусов, и как сделать так чтобы выделялись те строки которые соответствуют времени автобуса который следующий на отправление?)
пример 5:40 5:50 6:10 6:20 6:25 6:35 а время на сервере 5.42 тоесть выделится автобус 5:50 так как 5.40 уже ушёл. Спасибо.
 
Сверху