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 :: Версия для печати :: Назначить время жизни
Форумы портала PHP.SU » » Вопросы новичков » Назначить время жизни

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

1. pava77 - 28 Марта, 2013 - 21:06:31 - перейти к сообщению
Пользователь в списке выбирает время жизни объявления, как прикрепить ето к базе. что бы объявление само удалялось после окончания время жизни, ваще не могу понять как запрос сделать

PHP:
скопировать код в буфер обмена
  1.  
  2. $per = array(
  3.                         '1 неделя'=>'', // здесь секунды 1 недели, ниже аналогично
  4.                         '2 недели'=>'',
  5.                         '1 месяц'=>'',
  6.                         '3 месяца'=>'',
  7.                         '6 месяцев'=>'',
  8.                         '1 год'=>'');
  9.         // теперь надо построить запрос, типа если выбрана 1 неделя, то срок жизни чего то будет сколькото секунд(1 неделя)
  10.                         // мож как то от даты оттлкиваться или временной точки?
  11.  
2. Мелкий - 28 Марта, 2013 - 21:32:39 - перейти к сообщению
Храните в базе lifeTo - дату, до которой объявление может отображаться.
Соответственно, при добавлении вычисляете крайнюю дату (вплоть до time() + 7*24*60*60 для недели вперёд, но удобнее пользоваться встроенным классом datetime), а при показе - выбираете всё с lifeTo > NOW()
3. pava77 - 28 Марта, 2013 - 21:39:45 - перейти к сообщению
хм, буду лепить горбатого, мож что и слеплю, спасибо
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. $per = array(
  3.                         '1 неделя'=>'', //
  4.                         '2 недели'=>'',
  5.                         '1 месяц'=>'',
  6.                         '3 месяца'=>'',
  7.                         '6 месяцев'=>'',
  8.                         '1 год'=>'');
  9. $lifeto =
  10. $week1 =  date('Y-m-d', strtotime('+1 week')) ;
  11. $week2 =  date('Y-m-d', strtotime('+2 week')) ;
  12. $month1 =  date('Y-m-d', strtotime('+1 month')) ;
  13. $month3 =  date('Y-m-d', strtotime('+3 month')) ;
  14. $month6 =  date('Y-m-d', strtotime('+6 month')) ;
  15. $year1 =  date('Y-m-d', strtotime('+1 year')) ;
  16.  
че то ваще не соображаю, дайте кто нить подсказку
4. vanicon - 28 Марта, 2013 - 23:03:46 - перейти к сообщению
Example:
PHP:
скопировать код в буфер обмена
  1. $time = 3600 * 24; // 1 day
  2. echo date('Y-m-d H:i:s', time() + $time);

А потом эту дату в бд заносить..
5. pava77 - 28 Марта, 2013 - 23:17:35 - перейти к сообщению
немного понятно, а как быть когда доходит до месяца
PHP:
скопировать код в буфер обмена
  1.  
  2. $week1 = 3600 * 24 * 7;
  3.         $week2 = 3600 * 24 * 14;
  4.         $month1 = 3600 * 24 * 30;// как знать 30 или 31 день че надо множить?
  5.  
6. vanicon - 28 Марта, 2013 - 23:25:21 - перейти к сообщению
Раз дело до месяца дошло, то тогда лучше через strtotime
7. pava77 - 28 Марта, 2013 - 23:34:53 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $week1 = date('Y-m-d H:i:s', strtotime("+1 week"));
  3.         $week2 = date('Y-m-d H:i:s', strtotime("+2 week"));
  4.         $month1 = date('Y-m-d H:i:s', strtotime("+1 month"));
  5.         $month3 = date('Y-m-d H:i:s', strtotime("+3 month"));
  6.         $month6 = date('Y-m-d H:i:s', strtotime("+6 month"));
  7.         $year1 = date('Y-m-d H:i:s', strtotime("+12 month"));
  8.  
  9. <p>Период:             
  10.                 <?PHP
  11. $per = array("1 неделя", "2 недели", "1 месяц", "3 месяца", "6 месяцев", "1 год");
  12. $total = count($per);
  13. ?>
  14. <select name="srok" size="1">
  15. <?PHP for($i = 0; $i < $total; $i++) { ?>
  16. <option value="<?PHP echo($per[$i]); ?>"><?PHP echo($per[$i]); ?></option>
  17. <?PHP } ?>
  18. </select><br>
  19.  

как теперь прикрепить переменные к соответсвующим значениям из списка, так что бы после оправки бралось значение например 1 неделя к ней $week2 = date('Y-m-d H:i:s', strtotime("+2 week"));

 

Powered by ExBB FM 1.0 RC1