Перейти к содержимому


Напоминание о дне рождения.


Сообщений в теме: 7

#1 Refakki

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 18 Октябрь 2012 - 09:37

Хотим выводить напоминание о дне рождения за неделю в более читаемом виде.

Условие работает:
day(`Дата рождения`)=day(curdate() + INTERVAL 7 DAY) and month(`Дата рождения`)=month(curdate())

А вот в самом напоминании:
Наш сотрудник <b>{ФИО}</b> празднует день рождения {Дата рождения}!

Хотелось бы
...празднует день рождения 6 января.

Как бы это реализовать?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Октябрь 2012 - 09:56

А чем сейчас то дата рождения не устраивает, не совсем понял? Форматом даты?

#3 Refakki

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 18 Октябрь 2012 - 10:15

Имеем -
Наш сотрудник Алешин Иван Сергеевич празднует день рождения 21.10.1989!
Хотим -
Наш сотрудник Алешин Иван Сергеевич празднует день рождения 21 октября!

Сообщение отредактировал Refakki: 18 Октябрь 2012 - 10:16


#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Октябрь 2012 - 10:39

Ок. Тогда вам понадобится добавить новое текстовое поле, к примеру "Дата рождения прописью", и прописать для него следующее вычисление на отображение:

$line['Дата рождения прописью'] = data2str(strtotime($line['Дата рождения']), "d F");

И, соответственно, в тексте напоминания заменить {Дата рождения} на {Дата рождения прописью}

#5 Refakki

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 18 Октябрь 2012 - 11:09

Огромное спасибо - то, что нужно.
Только вот 06 января вместо 6 января. Но это не критично.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 19 Октябрь 2012 - 09:26

Цитата

Только вот 06 января вместо 6 января

$line['Дата рождения прописью'] = data2str(strtotime($line['Дата рождения']), "j F");


#7 ber

    Активный участник

  • Пользователи
  • PipPipPip
  • 234 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 18 Июнь 2013 - 08:55

Вы уверены, что вычисление:
day(`Дата рождения`)=day(curdate() + INTERVAL 7 DAY) and month(`Дата рождения`)=month(curdate())
работает? А что если 2 июня, то за неделю месяц не совпадет
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Июнь 2013 - 09:12

Во-первых, это не вычисление, а условие напоминания. Во-вторых, вы правы - у автора темы опечатка. Правильно так:

day(`Дата рождения`)=day(curdate() + INTERVAL 7 DAY) and month(`Дата рождения`)=month(curdate()+ INTERVAL 7 DAY)

Т.е. месяц необходимо вычислять тоже от даты через 7 дней.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных