Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите составить код продления срока хранения!!!
 
 автор: sega_z   (19.11.2010 в 12:01)   письмо автору
 
 

Всем доброго дня!

В базе данных есть некая запись с датой занесения в базу и датой удаления из базы.

При вычислении даты занесения в базу использовал:
$date_ok = date ("YmdHis"); // Определяем дату и время в настоящий момент


При вычислении даты удаления из базы использовал:

$dney = 5; // Задаём срок хранения в базе (дней)
$date_ok = date ("YmdHis");// Определяем дату и время в настоящий момент
$y = date ("Y"); //год
$m = date ("m"); //месяц
$d = date ("d"); //день
$H = date ("H"); //час
$i = date ("i"); //минута
$s = date ("s"); //секунда
$date_end = date("YmdHis", mktime($H, $i, $s, $m, $d+$dney, $y)); // Задаём дату и время окончания хранения записи в базе mktime(час, минута, секунда, месяц, день, год)
// Далее обновляем дату окончания срока хранения записи ($date_end) в базе


Но теперь возникла проблема, которую никак не могу решить!!!

Помогите пожалуйста составить код, чтобы автоматически продлить срок хранения записи в базе на 5 дней ($dney = 5 // величина постоянная) не от даты подачи, а именно от текущей даты + остаток дней от прежней даты окончания

  Ответить  
 
 автор: sega_z   (19.11.2010 в 14:07)   письмо автору
 
   для: sega_z   (19.11.2010 в 12:01)
 

Что никто не знает???

  Ответить  
 
 автор: ride   (19.11.2010 в 14:35)   письмо автору
 
   для: sega_z   (19.11.2010 в 12:01)
 

подобные задачи нужно решать средствами mysql.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

  Ответить  
 
 автор: sega_z   (19.11.2010 в 14:58)   письмо автору
 
   для: ride   (19.11.2010 в 14:35)
 

А что средствами PHP это не решить???

  Ответить  
 
 автор: ride   (19.11.2010 в 17:44)   письмо автору
 
   для: sega_z   (19.11.2010 в 14:58)
 

решить.
только придется
1. сначала достать из базы запись
2. посчитать средствами php
3. обновить запись

а можно сделать так:
update myTable set lastDay = lastDay + interval $x day where ...

  Ответить  
 
 автор: bab-nike   (19.11.2010 в 15:50)   письмо автору
 
   для: sega_z   (19.11.2010 в 12:01)
 

>чтобы автоматически продлить срок хранения записи в базе на 5 дней ($dney = 5 // величина постоянная) не от даты подачи, а именно от текущей даты + остаток дней от прежней даты окончания
Если честно мне не понятно чего вы хотите??? точнее какую задачу поставили перед собой, разве нельзя сразу продлить на 5...10....15.. дней, надо сперв на 5 продлить, а потом подумать еще как еще на 5??? Ей богу не врубаюсь что хотите делать.

  Ответить  
 
 автор: sega_z   (19.11.2010 в 16:19)   письмо автору
 
   для: bab-nike   (19.11.2010 в 15:50)
 

Пример: я подал платное объявление 01.01.10 на срок до 05.01.2010 (на 5 дней), затем 03.01.10 я захотел продлить это объявление ещё на 5 дней. Но я же заплатил за 5 + 5 дней, если срок считать с 03.01.10 + 5 дней = 07.01.10 (а заплатил до 10.01.10), т.е. 3 дня выпадают.

  Ответить  
 
 автор: neadekvat   (19.11.2010 в 16:50)   письмо автору
 
   для: sega_z   (19.11.2010 в 16:19)
 

Два варианта:
1. Хранить дату подачи объявления и срок, на который это объявление было подано
2. Хранить дату подачи объявления и дату окончания действия объявления.

Туда и сюда надо лишь прибавить количество дней - вы не знаете, как увеличить дату на пять дней или как прибавить к числу другое число?

  Ответить  
 
 автор: sega_z   (19.11.2010 в 17:11)   письмо автору
 
   для: neadekvat   (19.11.2010 в 16:50)
 

У меня храниться дата подачи и дата окончания.

Проблема в том как сосчитать количество оставшихся дней недоиспользованого срока (от текущей даты и времени до секунд) + новый срок

  Ответить  
 
 автор: Красная_шляпа   (19.11.2010 в 17:25)   письмо автору
 
   для: sega_z   (19.11.2010 в 17:11)
 


<?php

$дней_осталось 
ceil(($время_окончания $текущее_время) / 24 60 60);

  Ответить  
 
 автор: sega_z   (19.11.2010 в 17:35)   письмо автору
 
   для: Красная_шляпа   (19.11.2010 в 17:25)
 

В каком формате?

  Ответить  
 
 автор: Красная_шляпа   (19.11.2010 в 18:01)   письмо автору
 
   для: sega_z   (19.11.2010 в 17:35)
 

в базе даты хранить нужно в int(11) а не TIMESTAMP, int

  Ответить  
 
 автор: sega_z   (19.11.2010 в 18:16)   письмо автору
 
   для: Красная_шляпа   (19.11.2010 в 18:01)
 

Всё понял, огромное спасибо за информацию!!!!!!!!!!

  Ответить  
 
 автор: neadekvat   (19.11.2010 в 19:12)   письмо автору
 
   для: sega_z   (19.11.2010 в 17:11)
 

Не понимаю вот чего - то, о чем вы сейчас спрашиваете, никакого отношения не имеет к тому, как продлить срок - так вы тему неверно назвали или вопрос вдруг вылез посреди? Так если только сейчас вылез - то как же вы раньше считали, без всяких увеличений срока? А если задача уже была решена - то чем же решение будет отличаться, если просто количество дней измеинтся?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования