|
|
|
| Всем доброго дня!
В базе данных есть некая запись с датой занесения в базу и датой удаления из базы.
При вычислении даты занесения в базу использовал:
$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 в 12:01)
| | Что никто не знает??? | |
|
|
|
|
|
|
|
|
для: ride
(19.11.2010 в 14:35)
| | А что средствами PHP это не решить??? | |
|
|
|
|
|
|
|
для: sega_z
(19.11.2010 в 14:58)
| | решить.
только придется
1. сначала достать из базы запись
2. посчитать средствами php
3. обновить запись
а можно сделать так:
update myTable set lastDay = lastDay + interval $x day where ... | |
|
|
|
|
|
|
|
для: sega_z
(19.11.2010 в 12:01)
| | >чтобы автоматически продлить срок хранения записи в базе на 5 дней ($dney = 5 // величина постоянная) не от даты подачи, а именно от текущей даты + остаток дней от прежней даты окончания
Если честно мне не понятно чего вы хотите??? точнее какую задачу поставили перед собой, разве нельзя сразу продлить на 5...10....15.. дней, надо сперв на 5 продлить, а потом подумать еще как еще на 5??? Ей богу не врубаюсь что хотите делать. | |
|
|
|
|
|
|
|
для: 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 дня выпадают. | |
|
|
|
|
|
|
|
для: sega_z
(19.11.2010 в 16:19)
| | Два варианта:
1. Хранить дату подачи объявления и срок, на который это объявление было подано
2. Хранить дату подачи объявления и дату окончания действия объявления.
Туда и сюда надо лишь прибавить количество дней - вы не знаете, как увеличить дату на пять дней или как прибавить к числу другое число? | |
|
|
|
|
|
|
|
для: neadekvat
(19.11.2010 в 16:50)
| | У меня храниться дата подачи и дата окончания.
Проблема в том как сосчитать количество оставшихся дней недоиспользованого срока (от текущей даты и времени до секунд) + новый срок | |
|
|
|
|
|
|
|
для: sega_z
(19.11.2010 в 17:11)
| |
<?php
$дней_осталось = ceil(($время_окончания - $текущее_время) / 24 * 60 * 60);
|
| |
|
|
|
|
|
|
|
для: Красная_шляпа
(19.11.2010 в 17:25)
| | В каком формате? | |
|
|
|
|
|
|
|
для: sega_z
(19.11.2010 в 17:35)
| | в базе даты хранить нужно в int(11) а не TIMESTAMP, int | |
|
|
|
|
|
|
|
для: Красная_шляпа
(19.11.2010 в 18:01)
| | Всё понял, огромное спасибо за информацию!!!!!!!!!! | |
|
|
|
|
|
|
|
для: sega_z
(19.11.2010 в 17:11)
| | Не понимаю вот чего - то, о чем вы сейчас спрашиваете, никакого отношения не имеет к тому, как продлить срок - так вы тему неверно назвали или вопрос вдруг вылез посреди? Так если только сейчас вылез - то как же вы раньше считали, без всяких увеличений срока? А если задача уже была решена - то чем же решение будет отличаться, если просто количество дней измеинтся? | |
|
|
|