|
|
|
| Всем доброго дня!!!
Из Mysql извлекается переменная $data с датой и временем (DATETIME).
Как к переменной $data прибавить ровно 3 месяца (с точностью до секунды) и получить переменную $data_end ? | |
|
|
|
|
|
|
|
для: sega_z
(08.11.2011 в 22:47)
| |
<?
$time=strtotime($data);
$data_end=date('Y-m-d H:i:s',mktime(date('H',$time),date('i',$time),date('s',$time),date('m',$time)+3,date('d',$time),date('Y',$time)));
?>
|
<?
$date = date_create($data);
date_add($date, date_interval_create_from_date_string('3 months'));
$data_end=date_format($date, 'Y-m-d H:i:s');
?>
|
| |
|
|
|
|
|
|
|
для: sega_z
(08.11.2011 в 22:47)
| | это можно сделать сразу в БД еще до извлечения и извлекать уже готовую дату
опишите дальнейшее использование переменной $data_end | |
|
|
|
|
|
|
|
для: sega_z
(08.11.2011 в 22:47)
| | Удобнее всего конечно, прибавить три месяца средствами MySQL
SELECT data + INTERVAL 3 MONTH AS data FROM tbl
|
| |
|
|
|
|
|
|
|
для: cheops
(09.11.2011 в 14:00)
| | а может и использовать сразу в условии запроса, поэтому я и спросил про назначение конечной даты
но видимо автор уже схватил первую попавшуюся идею и погряз в килобайтах кода :) | |
|
|
|
|
|
|
|
для: Valick
(09.11.2011 в 15:12)
| | После получения $data_end у меня происходит сравнение с первоначальной датой $data:
if ($date > $date_end) //Если просрочено то удаляем текст из базы данных
|
Как можно вставить прибавку в условие? (думаю так удобнее) | |
|
|
|
|
|
|
|
для: sega_z
(09.11.2011 в 20:29)
| | как может быть первоначальная дата больше конечной, если к первоначальной вы добавляете три месяца и получаете конечную? Видимо у вас два столбца с датами...
тогда это делается единым запросом:
DELETE FROM table WHERE date1>(date2 + INTERVAL 3 MONTH)
|
p.s. либо вы хотите к дате прибавить три месяца и сравнить ее с сегодняшней датой | |
|
|
|
|
|
|
|
для: sega_z
(09.11.2011 в 20:29)
| | нуууу...
теперь вы понимаете свою ошибку?
вы задали вопрос как прибавить к дате три месяца...
а вопрос должен был звучать как удалить из базы информацию старше 3-х месяцев
DELETE FROM table WHERE date + INTERVAL 3 MONTH < NOW()
|
___
пойду "убью" кота... задолбал шухерить пол четвертого утра | |
|
|
|
|
|
|
|
для: Valick
(10.11.2011 в 03:30)
| | Просто у меня много вариантов обработки даты публикации, в зависимости от типа информации.
Поэтому я не ошибся с вопросом, просто это один из вариантов работы скрипта.
И все приведенные вами коды будут задействованы у меня на сайте.
Спасибо за помощь, то что надо!!! | |
|
|
|