Консультация № 69882
07.01.2007, 16:15
0.00 руб.
0 2 2
Здравствуйте!

подскажите пожалуйста как сделать селектор по датам. я, например, хочу показывать сообщения о праздниках, но сталкнулся с проблемой задания диапазона времени. Например чтобы с новым годом было от 22.12 до 15.1

Приложение:
switch (date("d.m")):case "31.12":case "1.1":// с новым годомbreak;case "8.3":// всех дам поздравляемbreak;case "1.9":// опять в школу и всё такоеbreak;default:// сегодня обычный деньendswitch;

Обсуждение

Неизвестный
07.01.2007, 17:40
общий
это ответ
Здравствуйте, Талипов А Н!
Тут надо применять условные операторы. Меняем представление даты не ДД.ММ,а наоборот ММ.ДД. Это необходимо для сравнения текстовых величин: 01.15 - это 15 января, 01.14 - 14 января. В PHP 01.15>01.14, на таком же алгоритме устроены сравнения времени(TimeStamp) в MySQL. Всё, теперь можно задавать промежутки времени. Чтобы они не пересекались с точно установленными датами, будем прописывать их операторе default:
if ($date>=‘12.22‘ || $date<=‘01.15‘) print ‘С новогодними праздиками‘;
elseif ($date>=‘06.01‘ && $date<‘09.01‘) print ‘Ура, лето‘;

Приложение:
$date=date("m.d");switch ($date){case "31.12": print ‘C наступающим‘;case "1.1": print ‘C новым годом‘;break;default: if ($date>=‘12.22‘ || $date<=‘01.15‘) print ‘С новогодними праздиками‘; elseif ($date>=‘06.01‘ && $date<‘09.01‘) print ‘Ура, лето‘;}
Неизвестный
10.01.2007, 17:24
общий
это ответ
Здравствуйте, Талипов А Н!
в конструкции switch подставь значение переменной.

Приложение:
$d=date("d.m");switch ($d) {case "31.12" : print "31.12"; break;case "8.03" : print "8.03";break;}
Форма ответа