Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Функция date();
Форумы портала PHP.SU » » Вопросы новичков » Функция date();

Страниц (1): [1]
 

1. etoYA - 11 Декабря, 2011 - 16:41:31 - перейти к сообщению
У меня в скрипте регистрации в базу добавляется дата регистрации date(d.m.Y); И вот я решил сделать скрипт актвивации пользователей, т.е. если не подтвердил в течении 5 дней, то удалить из базы.

Вопрос: Как определить разцину в 5 дней между датой регистрации?. P.S догадываюсь как сделать с NOW(),TIME(). Но желательно именно с date();
2. Panoptik - 11 Декабря, 2011 - 16:50:45 - перейти к сообщению
если интересует на php то именно с date щас лень придумывать можно попробовать неплохой вариант:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(time()>(date(d.m.Y)+432000)) {
  3. //тут действия по удалению
  4. //432000 время 5 дней в секундах
  5. }
  6.  
3. shipko - 11 Декабря, 2011 - 16:51:03 - перейти к сообщению
а не проще сделать дату в формате timestamp??
4. etoYA - 11 Декабря, 2011 - 16:51:20 - перейти к сообщению
А как быть если дата записана ('d.m.Y')????
5. z1o - 11 Декабря, 2011 - 16:51:43 - перейти к сообщению
У меня есть два варианта:
1) Используем функцию explode(), разбиваем дату регистрации
2) Циклом проходим до первого разделителя, и все что за ним просто убрать...
6. Мелкий - 11 Декабря, 2011 - 16:52:06 - перейти к сообщению
0) используйте, пока не поздно, нормальный Y-m-d и тип datatime или unixtime.
1) http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]tion_date-format
7. Panoptik - 11 Декабря, 2011 - 16:54:34 - перейти к сообщению
я немного ошибся, так работать не будет, нужно преобразовать date в timestamp
if(time()>strtotime((date(d.m.Y))+432000)) {
//тут действия по удалению
//432000 время 5 дней в секундах
}
8. etoYA - 11 Декабря, 2011 - 16:55:50 - перейти к сообщению
shipko, офк проще, но тогда при выводе даты регистрации пользователя придется приобразовывать в ту же дате()
9. Данил_123 - 11 Декабря, 2011 - 17:12:09 - перейти к сообщению
strtotime("+5 day");
10. etoYA - 11 Декабря, 2011 - 17:30:39 - перейти к сообщению
А есть обратная функция strtotime?

У меня вот получилось

1323554400

Хотелось бы проверить, действительно ли +5 дней добавилось. Улыбка
(Добавление)
Проверил уже, не работает..
11. shipko - 11 Декабря, 2011 - 17:33:46 - перейти к сообщению
etoYA пишет:
shipko, офк проще, но тогда при выводе даты регистрации пользователя придется приобразовывать в ту же дате()

ну это легко сделать используя функцию mktime и просто модуль разниц во времени проверять меньше чем 60*60*24 (так мы можем проверить зарегистрировался он в этот день или нет )
12. Данил_123 - 11 Декабря, 2011 - 17:48:45 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if(date("d.m.Y") == $date=date("d.m.Y",strtotime("+5 day")));
проверку не проверял
13. etoYA - 11 Декабря, 2011 - 17:51:05 - перейти к сообщению
Данил_123, это то да, но ведь дата в базе...
14. Данил_123 - 11 Декабря, 2011 - 18:00:41 - перейти к сообщению
etoYA ну значит под mysql_fetch_array и whеrе

 

Powered by ExBB FM 1.0 RC1