Задача:
В базе хранились данные с датами в формате 11-10-2010.
Нужно было при наступлении определенной даты - вывести событие.
Решение:
Нужно привести данные к формату timestamp Unix:
$databaseDate = '07-11-2010'; $dataBase = strtotime($databaseDate);
Дата СЕГОДНЯ в офрмате timestamp Unix:
$todayDate = strtotime('midnight');
также эта функция идентичная следующему выражению:
$todayDate2 = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
Ну и дальше:
if ($todayDate == $dataBase) { echo 'Даты идентичны!';}
Все!
Приведу еще функцию вывода текущей даты в формате 1-января-2011 года c правильным написанием окончаний на русском языке.
Функция вывода текущей даты:
function nowDate() { $month[1] = "Январ"; $month[2] = "Феврал"; $month[3] = "Март"; $month[4] = "Апрел"; $month[5] = "Ма"; $month[6] = "Июн"; $month[7] = "Июл"; $month[8] = "Август"; $month[9] = "Сентябр"; $month[10] = "Октябр"; $month[11] = "Ноябр"; $month[12] = "Декабр"; $day[0] = "Воскресенье"; $day[1] = "Понедельник"; $day[2] = "Вторник"; $day[3] = "Среда"; $day[4] = "Четверг"; $day[5] = "Пятница"; $day[6] = "Суббота"; $dnum = date("w"); $mnum = date("n"); $daym = date("d"); $year = date("Y"); $textday = $day[$dnum]; $monthm = $month[11]; if ($mnum==3||$mnum==8) { $k="а"; } else { $k="я"; } $date="$textday<br> $daym $monthm$k $year г."; return $date; }
Результат выполнения будет:
Понедельник
08 Декабря 2010 г.
Спасибо. не знал что при помощи strtotime так легко конвертить дату в UNIX-формат
Проверил код нашел несоотвествия а значит не правельную работу над немного изменить
эту строчку:
$date=$daym." ".$month[$mnum].$k." ".$year."г. ".$textday;
Эдуард, подскажите где не соответствия? У меня на тестовом сайте http://gavnosite.com в правом сайдбаре работает эта функция уже пару лет, вроде все ок.