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

iskif

Профессор
Регистрация
21 Авг 2006
Сообщения
373
Реакции
49
все, наверное, видели офф-лайновую версию 2gis. Вот там в табличке "часы работы" ячейка, соответствующая сегодняшней дате, вернее, дню недели, закрашена другим цветом.
как такое сделать на сайте и, желательно, не очень "тяжёлыми" средствами? Не обязательно цветом, можно просто другим\жирным шрифтом. Но как-нибудь выделить среди остальных.
 
for ($таблица)
{
$style = (текущая дата) ? " style='(цвет фона и тп)'" : '';
echo '<tr'.$style.'>';
{
что то типа этого
 
Я бы сделал немного по другому. Если ячейка содержит дату, то можно сравнивать её с текущей датой на сервере, либо на компе пользователя, и если они равны, подчеркивать/выделять требуемое.

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

if ($date_iz_td == date(d)) {echo 'style="стили"'}
 
Ячейка скорее всего содержит только число текущей даты. Если пользователю выводится только один текущий месяц,можно сравнивать только текущее число:

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');
 
Ячейка скорее всего содержит только число текущей даты. Если пользователю выводится только один текущий месяц,можно сравнивать только текущее число:


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

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


P.S.
date в качестве формата принимает строку: date('d');
я, похоже, некорректно обозначил тему
хоть я там и уточнил, что не с датой сравнивать, а с днём недели
календарь это не php и не ява-скрипт, это просто таблица с часами работы организации, для удобства восприятия хотел выделить текущий день недели цветом фона ячеек
 
я, похоже, некорректно обозначил тему
хоть я там и уточнил, что не с датой сравнивать, а с днём недели
календарь это не 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>
 
Хочу добавить, если php ниже версии 5.1 - используйте date('w');
 
Простите, хочу апнуть тему, можно ли тоже самое только для времени?
тоесть таблица с расписанием автобусов, и как сделать так чтобы выделялись те строки которые соответствуют времени автобуса который следующий на отправление?)
пример 5:40 5:50 6:10 6:20 6:25 6:35 а время на сервере 5.42 тоесть выделится автобус 5:50 так как 5.40 уже ушёл. Спасибо.
 
Назад
Сверху